diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-09 20:50:05 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-09 20:50:05 +0800 |
commit | 20741a96ac6dc824bcc7d67e7c966fa65cbb2faf (patch) | |
tree | bf72d48cca05c1847043b450ff04e92368af8a36 /cmd/mist | |
parent | 738d6e20f2a229aab15b767cb8ca2d2f9c2f9aa8 (diff) | |
download | dexon-20741a96ac6dc824bcc7d67e7c966fa65cbb2faf.tar.gz dexon-20741a96ac6dc824bcc7d67e7c966fa65cbb2faf.tar.zst dexon-20741a96ac6dc824bcc7d67e7c966fa65cbb2faf.zip |
Updated xeth instances to take extra param for ui.Interface
Please be aware that if any of the instances on xeth.frontend are called
the program will crash due to the default, temporarily, frontend
interface.
Diffstat (limited to 'cmd/mist')
-rw-r--r-- | cmd/mist/ext_app.go | 117 | ||||
-rw-r--r-- | cmd/mist/gui.go | 2 | ||||
-rw-r--r-- | cmd/mist/ui_lib.go | 20 |
3 files changed, 2 insertions, 137 deletions
diff --git a/cmd/mist/ext_app.go b/cmd/mist/ext_app.go deleted file mode 100644 index 84041a553..000000000 --- a/cmd/mist/ext_app.go +++ /dev/null @@ -1,117 +0,0 @@ -/* - This file is part of go-ethereum - - go-ethereum is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - go-ethereum is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. -*/ -/** - * @authors - * Jeffrey Wilcke <i@jev.io> - */ -package main - -import ( - "github.com/ethereum/go-ethereum/core" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/xeth" - "github.com/obscuren/qml" -) - -type AppContainer interface { - Create() error - Destroy() - - Window() *qml.Window - Engine() *qml.Engine - - NewBlock(*types.Block) - NewWatcher(chan bool) - Post(string, int) -} - -type ExtApplication struct { - *xeth.XEth - eth core.Backend - - events event.Subscription - watcherQuitChan chan bool - - filters map[string]*core.Filter - - container AppContainer - lib *UiLib -} - -func NewExtApplication(container AppContainer, lib *UiLib) *ExtApplication { - return &ExtApplication{ - XEth: xeth.New(lib.eth), - eth: lib.eth, - watcherQuitChan: make(chan bool), - filters: make(map[string]*core.Filter), - container: container, - lib: lib, - } -} - -func (app *ExtApplication) run() { - // Set the "eth" api on to the containers context - context := app.container.Engine().Context() - context.SetVar("eth", app) - context.SetVar("ui", app.lib) - - err := app.container.Create() - if err != nil { - guilogger.Errorln(err) - return - } - - // Call the main loop - go app.mainLoop() - - app.container.NewWatcher(app.watcherQuitChan) - - win := app.container.Window() - win.Show() - win.Wait() - - app.stop() -} - -func (app *ExtApplication) stop() { - app.events.Unsubscribe() - - // Kill the main loop - app.watcherQuitChan <- true - - app.container.Destroy() -} - -func (app *ExtApplication) mainLoop() { - for ev := range app.events.Chan() { - switch ev := ev.(type) { - case core.NewBlockEvent: - app.container.NewBlock(ev.Block) - - /* TODO remove - case state.Messages: - for id, filter := range app.filters { - msgs := filter.FilterMessages(ev) - if len(msgs) > 0 { - app.container.Messages(msgs, id) - } - } - */ - } - } -} diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go index 869b689dd..53ca35574 100644 --- a/cmd/mist/gui.go +++ b/cmd/mist/gui.go @@ -88,7 +88,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, session st panic(err) } - xeth := xeth.New(ethereum) + xeth := xeth.New(ethereum, nil) gui := &Gui{eth: ethereum, txDb: db, xeth: xeth, diff --git a/cmd/mist/ui_lib.go b/cmd/mist/ui_lib.go index 098e8fca5..187d5b2d6 100644 --- a/cmd/mist/ui_lib.go +++ b/cmd/mist/ui_lib.go @@ -58,7 +58,7 @@ type UiLib struct { } func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib { - x := xeth.New(eth) + x := xeth.New(eth, nil) lib := &UiLib{XEth: x, engine: engine, eth: eth, assetPath: assetPath, jsEngine: javascript.NewJSRE(x), filterCallbacks: make(map[int][]int)} //, filters: make(map[int]*xeth.JSFilter)} lib.filterManager = filter.NewFilterManager(eth.EventMux()) go lib.filterManager.Start() @@ -91,24 +91,6 @@ func (self *UiLib) EvalJavascriptString(str string) string { return fmt.Sprintf("%v", value) } -func (ui *UiLib) OpenQml(path string) { - container := NewQmlApplication(path[7:], ui) - app := NewExtApplication(container, ui) - - go app.run() -} - -func (ui *UiLib) OpenHtml(path string) { - container := NewHtmlApplication(path, ui) - app := NewExtApplication(container, ui) - - go app.run() -} - -func (ui *UiLib) OpenBrowser() { - ui.OpenHtml("file://" + ui.AssetPath("ext/home.html")) -} - func (ui *UiLib) Muted(content string) { component, err := ui.engine.LoadFile(ui.AssetPath("qml/muted.qml")) if err != nil { |