From d2bb83833ffadc91d128a1833853ec3240b8c824 Mon Sep 17 00:00:00 2001 From: obscuren Date: Sat, 18 Oct 2014 13:20:06 +0200 Subject: Moved Filter's wrapping functions to their own util package. Fixes #61 * CLI ethereum should no longer require the Qt/QML package --- ui/qt/filter.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ui/qt/filter.go (limited to 'ui/qt') diff --git a/ui/qt/filter.go b/ui/qt/filter.go new file mode 100644 index 000000000..86a34f37b --- /dev/null +++ b/ui/qt/filter.go @@ -0,0 +1,38 @@ +package qt + +import ( + "fmt" + + "github.com/ethereum/eth-go/ethchain" + "github.com/ethereum/eth-go/ui" + "gopkg.in/qml.v1" +) + +func NewFilterFromMap(object map[string]interface{}, eth ethchain.EthManager) *ethchain.Filter { + filter := ui.NewFilterFromMap(object, eth) + + if object["altered"] != nil { + filter.Altered = makeAltered(object["altered"]) + } + + return filter +} + +func makeAltered(v interface{}) (d []ethchain.AccountChange) { + if qList, ok := v.(*qml.List); ok { + var s []interface{} + qList.Convert(&s) + + fmt.Println(s) + + d = makeAltered(s) + } else if qMap, ok := v.(*qml.Map); ok { + var m map[string]interface{} + qMap.Convert(&m) + fmt.Println(m) + + d = makeAltered(m) + } + + return +} -- cgit