diff options
author | zelig <viktor.tron@gmail.com> | 2014-06-26 23:26:14 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2014-06-26 23:26:14 +0800 |
commit | 21d86ca486a88c936a1fe71f78d76c78df36a7eb (patch) | |
tree | 03cf271f99fba4e537c4fe8e91fb8ce53b3e2072 /ethereal/ui/gui.go | |
parent | c0a05fcf8984f04f198c5c0f8be4f73090f99403 (diff) | |
download | dexon-21d86ca486a88c936a1fe71f78d76c78df36a7eb.tar.gz dexon-21d86ca486a88c936a1fe71f78d76c78df36a7eb.tar.zst dexon-21d86ca486a88c936a1fe71f78d76c78df36a7eb.zip |
gui stop
- introduce gui.Stop()
- remember state with open
- stopping ethereum stack is not gui concern, moved to main
- stopping mining, gui and ethereum handled via interrupt callbacks
- ^C triggers exactly the same behaviour as quit via menu
Diffstat (limited to 'ethereal/ui/gui.go')
-rw-r--r-- | ethereal/ui/gui.go | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/ethereal/ui/gui.go b/ethereal/ui/gui.go index 8845f6af3..938037b90 100644 --- a/ethereal/ui/gui.go +++ b/ethereal/ui/gui.go @@ -37,6 +37,7 @@ type Gui struct { pub *ethpub.PEthereum logLevel ethlog.LogLevel + open bool } // Create GUI, but doesn't start it @@ -56,7 +57,7 @@ func New(ethereum *eth.Ethereum, logLevel int) *Gui { pub := ethpub.NewPEthereum(ethereum) - return &Gui{eth: ethereum, lib: lib, txDb: db, addr: addr, pub: pub, logLevel: ethlog.LogLevel(logLevel)} + return &Gui{eth: ethereum, lib: lib, txDb: db, addr: addr, pub: pub, logLevel: ethlog.LogLevel(logLevel), open: false} } func (gui *Gui) Start(assetPath string) { @@ -104,7 +105,7 @@ func (gui *Gui) Start(assetPath string) { } logger.Infoln("Starting GUI") - + gui.open = true win.Show() // only add the gui logger after window is shown otherwise slider wont be shown if addlog { @@ -113,7 +114,16 @@ func (gui *Gui) Start(assetPath string) { win.Wait() // need to silence gui logger after window closed otherwise logsystem hangs gui.SetLogLevel(ethlog.Silence) - gui.eth.Stop() + gui.open = false +} + +func (gui *Gui) Stop() { + if gui.open { + gui.SetLogLevel(ethlog.Silence) + gui.open = false + gui.win.Hide() + } + logger.Infoln("Stopped") } func (gui *Gui) ToggleMining() { |