diff options
Diffstat (limited to 'ui/qt/filter.go')
-rw-r--r-- | ui/qt/filter.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ui/qt/filter.go b/ui/qt/filter.go new file mode 100644 index 000000000..1fd99e78e --- /dev/null +++ b/ui/qt/filter.go @@ -0,0 +1,38 @@ +package qt + +import ( + "fmt" + + "github.com/ethereum/go-ethereum/ethchain" + "github.com/ethereum/go-ethereum/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 +} |