diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2020-05-06 00:41:41 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2020-05-06 00:41:41 -0500 |
| commit | 38612c1285889f59a8c94bb412354bb7bed4108a (patch) | |
| tree | 1ddae2fc6e3899f9ad44a5e2aaf18bac88c2f5f1 | |
| parent | 1d3a2010778befdfcf25c6bbbc012a2bb5ff5fd5 (diff) | |
| parent | 487e706f0629b3704388fbb1264a592f19332b99 (diff) | |
| download | monzero-gui-38612c1285889f59a8c94bb412354bb7bed4108a.tar.gz monzero-gui-38612c1285889f59a8c94bb412354bb7bed4108a.tar.xz monzero-gui-38612c1285889f59a8c94bb412354bb7bed4108a.zip | |
Merge pull request #2881
487e706 Improved daemon sync progress bar (rbrunner7)
| -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; @@ -73,6 +73,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 @@ -470,6 +471,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(); @@ -609,18 +613,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))); |
