diff options
author | obscuren <geffobscura@gmail.com> | 2014-07-18 18:21:34 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-07-18 18:21:34 +0800 |
commit | 75df148ba2644b6f862c7a78599a7b83177fb456 (patch) | |
tree | 1f67d6bba7ea76539f62f51d1190f7d2240f464a /ethereal/gui.go | |
parent | 2b9f16802d22b8d743797aecc9bd040a38d6f1f4 (diff) | |
parent | 4572d4940c5b027918364e0600fc88a50f73ed16 (diff) | |
download | go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar.gz go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar.bz2 go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar.lz go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar.xz go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.tar.zst go-tangerine-75df148ba2644b6f862c7a78599a7b83177fb456.zip |
Fixed miner channel
Diffstat (limited to 'ethereal/gui.go')
-rw-r--r-- | ethereal/gui.go | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/ethereal/gui.go b/ethereal/gui.go index 8047db63e..cfe5e2269 100644 --- a/ethereal/gui.go +++ b/ethereal/gui.go @@ -270,6 +270,10 @@ func (gui *Gui) setWalletValue(amount, unconfirmedFunds *big.Int) { gui.win.Root().Call("setWalletValue", str) } +func (self *Gui) getObjectByName(objectName string) qml.Object { + return self.win.Root().ObjectByName(objectName) +} + // Simple go routine function that updates the list of peers in the GUI func (gui *Gui) update() { reactor := gui.eth.Reactor() @@ -280,12 +284,15 @@ func (gui *Gui) update() { objectChan = make(chan ethutil.React, 1) peerChan = make(chan ethutil.React, 1) chainSyncChan = make(chan ethutil.React, 1) + miningChan = make(chan ethutil.React, 1) ) reactor.Subscribe("newBlock", blockChan) reactor.Subscribe("newTx:pre", txChan) reactor.Subscribe("newTx:post", txChan) reactor.Subscribe("chainSync", chainSyncChan) + reactor.Subscribe("miner:start", miningChan) + reactor.Subscribe("miner:stop", miningChan) nameReg := ethpub.EthereumConfig(gui.eth.StateManager()).NameReg() if nameReg != nil { @@ -293,13 +300,16 @@ func (gui *Gui) update() { } reactor.Subscribe("peerList", peerChan) - ticker := time.NewTicker(5 * time.Second) + peerUpdateTicker := time.NewTicker(5 * time.Second) + generalUpdateTicker := time.NewTicker(1 * time.Second) state := gui.eth.StateManager().TransState() unconfirmedFunds := new(big.Int) gui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(state.GetAccount(gui.address()).Amount))) - gui.win.Root().ObjectByName("syncProgressIndicator").Set("visible", !gui.eth.IsUpToDate()) + gui.getObjectByName("syncProgressIndicator").Set("visible", !gui.eth.IsUpToDate()) + + lastBlockLabel := gui.getObjectByName("lastBlockLabel") for { select { @@ -349,12 +359,21 @@ func (gui *Gui) update() { gui.loadAddressBook() case <-peerChan: gui.setPeerInfo() - case <-ticker.C: + case <-peerUpdateTicker.C: + gui.setPeerInfo() + case msg := <-miningChan: + if msg.Event == "miner:start" { + gui.miner = msg.Resource.(*ethminer.Miner) + } else { + gui.miner = nil + } + + case <-generalUpdateTicker.C: if gui.miner != nil { pow := gui.miner.GetPow() fmt.Println("HashRate from miner", pow.GetHashrate()) } - gui.setPeerInfo() + lastBlockLabel.Set("text", "#"+gui.eth.BlockChain().CurrentBlock.Number.String()) } } } |