@@ -270,6 +270,10 @@ func (gui *Gui) setWalletValue(amount, unconfirmedFunds *big.Int) {
270
270
gui .win .Root ().Call ("setWalletValue" , str )
271
271
}
272
272
273
+ func (self * Gui ) getObjectByName (objectName string ) qml.Object {
274
+ return self .win .Root ().ObjectByName (objectName )
275
+ }
276
+
273
277
// Simple go routine function that updates the list of peers in the GUI
274
278
func (gui * Gui ) update () {
275
279
reactor := gui .eth .Reactor ()
@@ -280,26 +284,32 @@ func (gui *Gui) update() {
280
284
objectChan = make (chan ethutil.React , 1 )
281
285
peerChan = make (chan ethutil.React , 1 )
282
286
chainSyncChan = make (chan ethutil.React , 1 )
287
+ miningChan = make (chan ethutil.React , 1 )
283
288
)
284
289
285
290
reactor .Subscribe ("newBlock" , blockChan )
286
291
reactor .Subscribe ("newTx:pre" , txChan )
287
292
reactor .Subscribe ("newTx:post" , txChan )
288
293
reactor .Subscribe ("chainSync" , chainSyncChan )
294
+ reactor .Subscribe ("miner:start" , miningChan )
295
+ reactor .Subscribe ("miner:stop" , miningChan )
289
296
290
297
nameReg := ethpub .EthereumConfig (gui .eth .StateManager ()).NameReg ()
291
298
if nameReg != nil {
292
299
reactor .Subscribe ("object:" + string (nameReg .Address ()), objectChan )
293
300
}
294
301
reactor .Subscribe ("peerList" , peerChan )
295
302
296
- ticker := time .NewTicker (5 * time .Second )
303
+ peerUpdateTicker := time .NewTicker (5 * time .Second )
304
+ generalUpdateTicker := time .NewTicker (1 * time .Second )
297
305
298
306
state := gui .eth .StateManager ().TransState ()
299
307
300
308
unconfirmedFunds := new (big.Int )
301
309
gui .win .Root ().Call ("setWalletValue" , fmt .Sprintf ("%v" , ethutil .CurrencyToString (state .GetAccount (gui .address ()).Amount )))
302
- gui .win .Root ().ObjectByName ("syncProgressIndicator" ).Set ("visible" , ! gui .eth .IsUpToDate ())
310
+ gui .getObjectByName ("syncProgressIndicator" ).Set ("visible" , ! gui .eth .IsUpToDate ())
311
+
312
+ lastBlockLabel := gui .getObjectByName ("lastBlockLabel" )
303
313
304
314
for {
305
315
select {
@@ -349,12 +359,21 @@ func (gui *Gui) update() {
349
359
gui .loadAddressBook ()
350
360
case <- peerChan :
351
361
gui .setPeerInfo ()
352
- case <- ticker .C :
362
+ case <- peerUpdateTicker .C :
363
+ gui .setPeerInfo ()
364
+ case msg := <- miningChan :
365
+ if msg .Event == "miner:start" {
366
+ gui .miner = msg .Resource .(* ethminer.Miner )
367
+ } else {
368
+ gui .miner = nil
369
+ }
370
+
371
+ case <- generalUpdateTicker .C :
353
372
if gui .miner != nil {
354
373
pow := gui .miner .GetPow ()
355
374
fmt .Println ("HashRate from miner" , pow .GetHashrate ())
356
375
}
357
- gui .setPeerInfo ( )
376
+ lastBlockLabel . Set ( "text" , "#" + gui .eth . BlockChain (). CurrentBlock . Number . String () )
358
377
}
359
378
}
360
379
}
0 commit comments