aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal/ui/gui.go
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2014-06-26 23:26:14 +0800
committerzelig <viktor.tron@gmail.com>2014-06-26 23:26:14 +0800
commit21d86ca486a88c936a1fe71f78d76c78df36a7eb (patch)
tree03cf271f99fba4e537c4fe8e91fb8ce53b3e2072 /ethereal/ui/gui.go
parentc0a05fcf8984f04f198c5c0f8be4f73090f99403 (diff)
downloaddexon-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.go16
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() {