Added a catch up indicator

This commit is contained in:
obscuren 2014-07-17 22:01:39 +02:00
parent edf10ef8c5
commit ba3fabda77
2 changed files with 27 additions and 4 deletions

View File

@ -419,6 +419,17 @@ ApplicationWindow {
} }
} }
ProgressBar {
id: syncProgressIndicator
visible: false
objectName: "syncProgressIndicator"
y: 3
width: 140
indeterminate: true
anchors.right: peerLabel.left
anchors.rightMargin: 5
}
Label { Label {
y: 7 y: 7
anchors.right: peerImage.left anchors.right: peerImage.left
@ -443,6 +454,7 @@ ApplicationWindow {
Window { Window {
id: popup id: popup
visible: false visible: false
flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
property var block property var block
width: root.width width: root.width
height: 300 height: 300
@ -577,6 +589,7 @@ ApplicationWindow {
Window { Window {
id: addPeerWin id: addPeerWin
flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
visible: false visible: false
minimumWidth: 230 minimumWidth: 230
maximumWidth: 230 maximumWidth: 230
@ -743,6 +756,7 @@ ApplicationWindow {
// ****************************************** // ******************************************
Window { Window {
id: peerWindow id: peerWindow
flags: Qt.CustomizeWindowHint | Qt.Tool | Qt.WindowCloseButtonHint
height: 200 height: 200
width: 700 width: 700
Rectangle { Rectangle {

View File

@ -266,14 +266,18 @@ func (gui *Gui) setWalletValue(amount, unconfirmedFunds *big.Int) {
func (gui *Gui) update() { func (gui *Gui) update() {
reactor := gui.eth.Reactor() reactor := gui.eth.Reactor()
blockChan := make(chan ethutil.React, 1) var (
txChan := make(chan ethutil.React, 1) blockChan = make(chan ethutil.React, 1)
objectChan := make(chan ethutil.React, 1) txChan = make(chan ethutil.React, 1)
peerChan := make(chan ethutil.React, 1) objectChan = make(chan ethutil.React, 1)
peerChan = make(chan ethutil.React, 1)
chainSyncChan = make(chan ethutil.React, 1)
)
reactor.Subscribe("newBlock", blockChan) reactor.Subscribe("newBlock", blockChan)
reactor.Subscribe("newTx:pre", txChan) reactor.Subscribe("newTx:pre", txChan)
reactor.Subscribe("newTx:post", txChan) reactor.Subscribe("newTx:post", txChan)
reactor.Subscribe("chainSync", chainSyncChan)
nameReg := ethpub.EthereumConfig(gui.eth.StateManager()).NameReg() nameReg := ethpub.EthereumConfig(gui.eth.StateManager()).NameReg()
if nameReg != nil { if nameReg != nil {
@ -287,6 +291,7 @@ func (gui *Gui) update() {
unconfirmedFunds := new(big.Int) unconfirmedFunds := new(big.Int)
gui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(state.GetAccount(gui.address()).Amount))) 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())
for { for {
select { select {
@ -328,6 +333,10 @@ func (gui *Gui) update() {
state.UpdateStateObject(object) state.UpdateStateObject(object)
} }
case msg := <-chainSyncChan:
sync := msg.Resource.(bool)
gui.win.Root().ObjectByName("syncProgressIndicator").Set("visible", sync)
case <-objectChan: case <-objectChan:
gui.loadAddressBook() gui.loadAddressBook()
case <-peerChan: case <-peerChan: