diff options
| author | rbrunner7 <rbrunner@dreamshare.ch> | 2020-05-02 16:34:54 +0200 |
|---|---|---|
| committer | rbrunner7 <rbrunner@dreamshare.ch> | 2020-05-02 16:34:54 +0200 |
| commit | 487e706f0629b3704388fbb1264a592f19332b99 (patch) | |
| tree | 5a9645361a451c0cf2e60c74a42cc5572f2746f4 | |
| parent | 585fb2810dc0d9b79255b9bd479559b36aa087d8 (diff) | |
| download | monzero-gui-487e706f0629b3704388fbb1264a592f19332b99.tar.gz monzero-gui-487e706f0629b3704388fbb1264a592f19332b99.tar.xz monzero-gui-487e706f0629b3704388fbb1264a592f19332b99.zip | |
Improved daemon sync progress bar
| -rw-r--r-- | components/ProgressBar.qml | 2 | ||||
| -rw-r--r-- | main.qml | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/components/ProgressBar.qml b/components/ProgressBar.qml index c11f3b1a..57c5a14c 100644 --- a/components/ProgressBar.qml +++ b/components/ProgressBar.qml @@ -42,7 +42,7 @@ Rectangle { function updateProgress(currentBlock,targetBlock, blocksToSync, statusTxt){ if(targetBlock > 0) { var remaining = (currentBlock < targetBlock) ? targetBlock - currentBlock : 0 - var progressLevel = (blocksToSync > 0 && blocksToSync != remaining) ? (100*(blocksToSync - remaining)/blocksToSync).toFixed(0) : (100*(currentBlock / targetBlock)).toFixed(0) + var progressLevel = (blocksToSync > 0 ) ? (100*(blocksToSync - remaining)/blocksToSync).toFixed(0) : 100 fillLevel = progressLevel if(typeof statusTxt != "undefined" && statusTxt != "") { progressText.text = statusTxt; @@ -72,6 +72,7 @@ ApplicationWindow { property bool foundNewBlock: false property bool qrScannerEnabled: (typeof builtWithScanner != "undefined") && builtWithScanner property int blocksToSync: 1 + property int firstBlockSeen property bool isMining: false property int walletMode: persistentSettings.walletMode property var cameraUi @@ -474,6 +475,9 @@ ApplicationWindow { console.log("Wallet connection status changed " + status) middlePanel.updateStatus(); leftPanel.networkStatus.connected = status + if (status == Wallet.ConnectionStatus_Disconnected) { + firstBlockSeen = 0; + } // Update fee multiplier dropdown on transfer page middlePanel.transferView.updatePriorityDropdown(); @@ -613,18 +617,22 @@ ApplicationWindow { currentDaemonAddress = localDaemonAddress currentWallet.initAsync(currentDaemonAddress, isTrustedDaemon()); walletManager.setDaemonAddressAsync(currentDaemonAddress); + firstBlockSeen = 0; } function onHeightRefreshed(bcHeight, dCurrentBlock, dTargetBlock) { // Daemon fully synced // TODO: implement onDaemonSynced or similar in wallet API and don't start refresh thread before daemon is synced // targetBlock = currentBlock = 1 before network connection is established. + if (firstBlockSeen == 0 && dTargetBlock != 1) { + firstBlockSeen = dCurrentBlock; + } daemonSynced = dCurrentBlock >= dTargetBlock && dTargetBlock != 1 walletSynced = bcHeight >= dTargetBlock // Update progress bars if(!daemonSynced) { - leftPanel.daemonProgressBar.updateProgress(dCurrentBlock,dTargetBlock, dTargetBlock-dCurrentBlock); + leftPanel.daemonProgressBar.updateProgress(dCurrentBlock,dTargetBlock, dTargetBlock-firstBlockSeen); leftPanel.progressBar.updateProgress(0,dTargetBlock, dTargetBlock, qsTr("Waiting for daemon to sync")); } else { leftPanel.daemonProgressBar.updateProgress(dCurrentBlock,dTargetBlock, 0, qsTr("Daemon is synchronized (%1)").arg(dCurrentBlock.toFixed(0))); |
