From 37cb0061eecc2b837fa41525108ca7c45271fde7 Mon Sep 17 00:00:00 2001 From: Jaquee Date: Thu, 15 Mar 2018 16:35:47 +0100 Subject: [PATCH] separate progress bars for daemon and wallet --- LeftPanel.qml | 13 +++++++++++++ components/ProgressBar.qml | 24 ++++++++++-------------- main.qml | 31 +++---------------------------- 3 files changed, 26 insertions(+), 42 deletions(-) diff --git a/LeftPanel.qml b/LeftPanel.qml index c88b34f4..3d7a4945 100644 --- a/LeftPanel.qml +++ b/LeftPanel.qml @@ -39,6 +39,7 @@ Rectangle { property alias balanceText: balanceText.text property alias networkStatus : networkStatus property alias progressBar : progressBar + property alias daemonProgressBar : daemonProgressBar property alias minutesToUnlockTxt: unlockedBalanceLabel.text signal dashboardClicked() @@ -541,8 +542,20 @@ Rectangle { id: progressBar anchors.left: parent.left anchors.right: parent.right + anchors.bottom: daemonProgressBar.top + height: 35 * scaleRatio + syncType: qsTr("Wallet") + visible: networkStatus.connected + } + + ProgressBar { + id: daemonProgressBar + anchors.left: parent.left + anchors.right: parent.right anchors.bottom: parent.bottom height: 35 * scaleRatio + syncType: qsTr("Daemon") + visible: networkStatus.connected } } // menuRect diff --git a/components/ProgressBar.qml b/components/ProgressBar.qml index 90e50873..cf5b3a12 100644 --- a/components/ProgressBar.qml +++ b/components/ProgressBar.qml @@ -32,7 +32,8 @@ import moneroComponents.Wallet 1.0 Rectangle { id: item property int fillLevel: 0 - visible: false + property string syncType // Wallet or Daemon + property string syncText: qsTr("%1 blocks remaining: ").arg(syncType) color: "#1C1C1C" function updateProgress(currentBlock,targetBlock, blocksToSync, statusTxt){ @@ -44,24 +45,19 @@ Rectangle { } if(targetBlock > 0) { - var remaining = targetBlock - currentBlock - // wallet sync - if(blocksToSync > 0) - var progressLevel = (100*(blocksToSync - remaining)/blocksToSync).toFixed(0); - // Daemon sync - else - var progressLevel = (100*(currentBlock/targetBlock)).toFixed(0); + var remaining = (currentBlock < targetBlock) ? targetBlock - currentBlock : 0 + var progressLevel = (blocksToSync > 0) ? (100*(blocksToSync - remaining)/blocksToSync).toFixed(0) : 100 fillLevel = progressLevel if(typeof statusTxt != "undefined" && statusTxt != "") { - progressText.text = statusTxt + (" %1").arg(remaining.toFixed(0)); + progressText.text = statusTxt; } else { - progressText.text = qsTr("Blocks remaining: %1").arg(remaining.toFixed(0)); + progressText.text = syncText + remaining.toFixed(0); } - - - progressBar.visible = currentBlock < targetBlock } + + if(remaining == 0 && (typeof statusTxt == "undefined" || statusTxt == "")) + progressText.text = qsTr("%1 is synchronized").arg(syncType) } Item { @@ -106,7 +102,7 @@ Rectangle { font.family: "Arial" font.pixelSize: 12 * scaleRatio color: "#000" - text: qsTr("Synchronizing blocks") + text: qsTr("Synchronizing %1").arg(syncType) height:18 * scaleRatio } } diff --git a/main.qml b/main.qml index 73d36eed..78818a96 100644 --- a/main.qml +++ b/main.qml @@ -320,7 +320,6 @@ ApplicationWindow { console.log("Wallet connection status changed " + status) middlePanel.updateStatus(); leftPanel.networkStatus.connected = status - leftPanel.progressBar.visible = (status === Wallet.ConnectionStatus_Connected) && !daemonSynced // Update fee multiplier dropdown on transfer page middlePanel.transferView.updatePriorityDropdown(); @@ -414,38 +413,14 @@ ApplicationWindow { // targetBlock = currentBlock = 1 before network connection is established. daemonSynced = dCurrentBlock >= dTargetBlock && dTargetBlock != 1 // Update daemon sync progress - leftPanel.progressBar.updateProgress(dCurrentBlock,dTargetBlock); - leftPanel.progressBar.visible = !daemonSynced && currentWallet.connected() !== Wallet.ConnectionStatus_Disconnected + leftPanel.daemonProgressBar.updateProgress(dCurrentBlock,dTargetBlock); + if(!daemonSynced) + leftPanel.progressBar.updateProgress(0,dTargetBlock, dTargetBlock, qsTr("Waiting for daemon to sync")); // Update wallet sync progress updateSyncing((currentWallet.connected() !== Wallet.ConnectionStatus_Disconnected) && !daemonSynced) // Update transfer page status middlePanel.updateStatus(); - // Use remote node while local daemon is syncing - if (persistentSettings.useRemoteNode) { - var localNodeConnected = walletManager.connected; - var localNodeSynced = localNodeConnected && walletManager.localDaemonSynced() - if (!currentWallet.connected() || !localNodeSynced) { - console.log("Using remote node while local node is syncing") - // Connect to remote node if not already connected - if(!remoteNodeConnected) { - connectRemoteNode(); - } - - //update local daemon sync progress bar - if(localNodeConnected) { - leftPanel.progressBar.updateProgress(walletManager.blockchainHeight(),walletManager.blockchainTargetHeight(), 0, qsTr("Remaining blocks (local node):")); - leftPanel.progressBar.visible = true - } else if (!persistentSettings.useRemoteNode && !startLocalNodeCancelled) { - daemonManagerDialog.open() - } - - // local daemon is synced - use it! - } else if (localNodeSynced && remoteNodeConnected) { - disconnectRemoteNode(); - } - } - // Refresh is succesfull if blockchain height > 1 if (currentWallet.blockChainHeight() > 1){