From: gg Date: Wed, 14 Jan 2026 14:57:18 +0000 (-0500) Subject: keep simplifying pause sync stuff X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=e184d29138833c38e9eebba7727e52c752d96862;p=gamesguru%2Ffeather.git keep simplifying pause sync stuff --- diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 9caf3f5e..242d1de9 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -221,12 +221,6 @@ void MainWindow::initStatusBar() { pauseSyncAction->setChecked(conf()->get(Config::syncPaused).toBool()); m_statusLabelStatus->addAction(pauseSyncAction); - m_actionDisconnectNodeOnPause = new QAction(tr("Disconnect from Node"), this); - m_actionDisconnectNodeOnPause->setCheckable(true); - m_actionDisconnectNodeOnPause->setChecked(conf()->get(Config::syncPausedAlsoDisconnectNode).toBool()); - m_actionDisconnectNodeOnPause->setEnabled(pauseSyncAction->isChecked()); - m_statusLabelStatus->addAction(m_actionDisconnectNodeOnPause); - m_actionEnableWebsocket = new QAction(tr("Enable Websocket"), this); m_actionEnableWebsocket->setCheckable(true); m_actionEnableWebsocket->setChecked(!conf()->get(Config::disableWebsocket).toBool()); @@ -242,9 +236,6 @@ void MainWindow::initStatusBar() { WindowManager::instance()->onWebsocketStatusChanged(checked); }); - connect(m_actionDisconnectNodeOnPause, &QAction::toggled, this, [](bool checked){ - conf()->set(Config::syncPausedAlsoDisconnectNode, checked); - }); QAction *skipSyncAction = new QAction(tr("Skip Sync"), this); m_statusLabelStatus->addAction(skipSyncAction); @@ -266,20 +257,13 @@ void MainWindow::initStatusBar() { qInfo() << "Pause Sync toggled. Checked =" << checked; conf()->set(Config::syncPaused, checked); - m_actionDisconnectNodeOnPause->setEnabled(checked); m_updateNetworkInfoAction->setEnabled(!checked); if (m_wallet) { if (checked) { m_wallet->setSyncPaused(true); - - if (m_actionDisconnectNodeOnPause->isChecked()) { - qInfo() << "Disconnecting from node (Pause Sync enabled)"; - m_nodes->disconnectCurrentNode(); - this->onConnectionStatusChanged(Wallet::ConnectionStatus_Disconnected); - } - - this->setPausedSyncStatus(); + m_nodes->disconnectCurrentNode(); + this->onConnectionStatusChanged(Wallet::ConnectionStatus_Disconnected); } else { // Ensure we reconnect everything when unpausing m_wallet->setSyncPaused(false); @@ -711,12 +695,6 @@ void MainWindow::initOffline() { m_wallet->updateNetworkStatus(); }); - connect(m_wallet, &Wallet::heightsRefreshed, this, [this](bool success, quint64 daemonHeight, quint64 targetHeight) { - if (conf()->get(Config::syncPaused).toBool()) { - qDebug() << "Heights refreshed (Paused): Daemon" << daemonHeight << "Target" << targetHeight; - this->setPausedSyncStatus(); - } - }); // We do NOT want to start syncing yet here, wait for wallet to be opened // We can't use rich text for radio buttons @@ -757,16 +735,6 @@ void MainWindow::initWalletContext() { this->updateBalance(); }); - connect(m_wallet, &Wallet::heightsRefreshed, this, [this](bool success, quint64 daemonHeight, quint64 targetHeight) { - // When paused, we might get success=false because wallet->refresh() is skipped, - // preventing strict cache updates. We should attempt to fallback to m_nodes info. - if (!success && !conf()->get(Config::syncPaused).toBool()) return; - - // Update sync estimate if paused - if (conf()->get(Config::syncPaused).toBool()) { - this->setPausedSyncStatus(); - } - }); connect(m_wallet, &Wallet::currentSubaddressAccountChanged, this, &MainWindow::updateTitle); connect(m_wallet, &Wallet::walletPassphraseNeeded, this, &MainWindow::onWalletPassphraseNeeded); @@ -871,7 +839,6 @@ void MainWindow::onWalletOpened() { if (!conf()->get(Config::disableAutoRefresh).toBool()) { if (conf()->get(Config::syncPaused).toBool()) { m_wallet->setSyncPaused(true); - this->setPausedSyncStatus(); } m_nodes->connectToNode(); } @@ -943,27 +910,6 @@ void MainWindow::onBalanceUpdated(quint64 balance, quint64 spendable) { m_statusLabelBalance->setProperty("copyableValue", valueStr); } -void MainWindow::setPausedSyncStatus() { - qDebug() << "setPausedSyncStatus called. Sync paused:" << conf()->get(Config::syncPaused).toBool(); - QString tooltip; - QString status = Utils::getPausedSyncStatus(m_wallet, m_nodes, &tooltip); - - if (m_wallet) { - quint64 daemonHeight = m_wallet->daemonBlockChainHeight(); - quint64 walletHeight = m_wallet->blockChainHeight(); - quint64 targetHeight = m_wallet->daemonBlockChainTargetHeight(); - quint64 blocksBehind = Utils::blocksBehind(walletHeight, targetHeight); - - qDebug() << "Paused Status Calc: WalletHeight:" << walletHeight - << "DaemonHeight:" << daemonHeight - << "TargetHeight:" << targetHeight - << "BlocksBehind:" << blocksBehind; - } - - this->setStatusText(status); - if (!tooltip.isEmpty()) - m_statusLabelStatus->setToolTip(tooltip); -} void MainWindow::setStatusText(const QString &text, bool override, int timeout) { @@ -1165,14 +1111,6 @@ void MainWindow::onConnectionStatusChanged(int status) m_statusBtnConnectionStatusIndicator->setToolTip(statusStr); - if (conf()->get(Config::syncPaused).toBool() && !conf()->get(Config::offlineMode).toBool()) { - if (status == Wallet::ConnectionStatus_Synchronizing - || status == Wallet::ConnectionStatus_Synchronized - || status == Wallet::ConnectionStatus_Connecting) { - this->setPausedSyncStatus(); - icon = icons()->icon("status_lagging.svg"); - } - } m_statusBtnConnectionStatusIndicator->setIcon(icon); } @@ -1875,7 +1813,6 @@ void MainWindow::onDeviceError(const QString &error, quint64 errorCode) { } } m_statusBtnHwDevice->setIcon(this->hardwareDevicePairedIcon()); - m_wallet->setSyncPaused(conf()->get(Config::syncPaused).toBool()); m_showDeviceError = false; } diff --git a/src/MainWindow.h b/src/MainWindow.h index 23923924..d5d1a862 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -211,7 +211,6 @@ private: void unlockWallet(const QString &password); void closeQDialogChildren(QObject *object); int findTab(const QString &title); - void setPausedSyncStatus(); QIcon hardwareDevicePairedIcon(); QIcon hardwareDeviceUnpairedIcon(); @@ -235,7 +234,6 @@ private: QPointer m_clearRecentlyOpenAction; QPointer m_updateNetworkInfoAction; - QPointer m_actionDisconnectNodeOnPause; QPointer m_actionEnableWebsocket; QDateTime m_lastSyncStatusUpdate; diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 5d9905e0..8aadcb81 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -550,20 +550,6 @@ void Wallet::onHeightsRefreshed(bool success, quint64 daemonHeight, quint64 targ m_daemonBlockChainHeight = daemonHeight; m_daemonBlockChainTargetHeight = targetHeight; - if (conf()->get(Config::syncPaused).toBool()) { - if (success) { - quint64 walletHeight = blockChainHeight(); - if (walletHeight < (targetHeight - 1)) { - setConnectionStatus(ConnectionStatus_Synchronizing); - } else { - setConnectionStatus(ConnectionStatus_Synchronized); - } - } else { - setConnectionStatus(ConnectionStatus_Disconnected); - } - return; - } - if (success) { quint64 walletHeight = blockChainHeight(); @@ -720,7 +706,7 @@ bool Wallet::importTransaction(const QString &txid) { } void Wallet::onNewBlock(uint64_t walletHeight) { - if (conf()->get(Config::syncPaused).toBool()) { + if (m_syncPaused) { return; } // Called whenever a new block gets scanned by the wallet diff --git a/src/utils/Utils.cpp b/src/utils/Utils.cpp index 556e6cb0..d037390f 100644 --- a/src/utils/Utils.cpp +++ b/src/utils/Utils.cpp @@ -777,44 +777,6 @@ quint64 estimateSyncDataSize(quint64 blocks) { return blocks * 30 * 1024; } -QString formatPausedSyncStatus(quint64 blocks) { - QString blocksStr = QLocale().toString(blocks); - return QObject::tr("[PAUSED] %1 blocks behind").arg(blocksStr); -} - -QString getPausedSyncStatus(Wallet *wallet, Nodes *nodes, QString *tooltip) { - if (!wallet) return QObject::tr("[PAUSED] Sync paused"); - - quint64 walletHeight = wallet->blockChainHeight(); - quint64 creationHeight = wallet->getWalletCreationHeight(); - quint64 startHeight = (walletHeight > creationHeight) ? walletHeight : creationHeight; - quint64 daemonHeight = wallet->daemonBlockChainTargetHeight(); - if (daemonHeight == 0) { - daemonHeight = wallet->daemonBlockChainHeight(); - } - - // If sync is paused or wallet just started, Wallet's internal height might be 0. - // If the daemon is connected, use its target_height or height to determine the latest tip. - if (daemonHeight == 0 && nodes) { - auto connection = nodes->connection(); - if (connection.target_height > 0) daemonHeight = connection.target_height; - else if (connection.height > 0) daemonHeight = connection.height; - } - - if (daemonHeight > 0) { - if (tooltip) { - *tooltip = QObject::tr("Wallet Height: %1 | Network Tip: %2").arg(walletHeight).arg(daemonHeight); - } - quint64 blocksBehind = Utils::blocksBehind(startHeight, daemonHeight); - if (blocksBehind == 0) { - return QObject::tr("[PAUSED] Sync paused"); - } - return formatPausedSyncStatus(blocksBehind); - } - - return QObject::tr("[PAUSED] Sync paused"); -} - QString formatRestoreHeight(quint64 height) { const QDateTime restoreDate = appData()->restoreHeights[constants::networkType]->heightToDate(height); return QString("%1 (%2)").arg(QString::number(height), restoreDate.toString("yyyy-MM-dd")); diff --git a/src/utils/Utils.h b/src/utils/Utils.h index ae2467df..f4aa6118 100644 --- a/src/utils/Utils.h +++ b/src/utils/Utils.h @@ -125,8 +125,6 @@ namespace Utils QString formatSyncStatus(quint64 height, quint64 target, bool daemonSync = false); QString formatSyncTimeEstimate(quint64 blocks); quint64 estimateSyncDataSize(quint64 blocks); - QString formatPausedSyncStatus(quint64 blocks); - QString getPausedSyncStatus(Wallet *wallet, Nodes *nodes, QString *tooltip = nullptr); QString formatRestoreHeight(quint64 height); QString getVersion(); diff --git a/src/utils/config.cpp b/src/utils/config.cpp index 71a66c29..3250b8b9 100644 --- a/src/utils/config.cpp +++ b/src/utils/config.cpp @@ -80,7 +80,6 @@ static const QHash configStrings = { {Config::disableAutoRefresh, {QS("disableAutoRefresh"), false}}, {Config::offlineMode, {QS("offlineMode"), false}}, {Config::syncPaused, {QS("syncPaused"), false}}, - {Config::syncPausedAlsoDisconnectNode, {QS("syncPausedAlsoDisconnectNode"), false}}, {Config::syncPausedAlsoDisconnectWebSocket, {QS("syncPausedAlsoDisconnectWebSocket"), false}}, // Transactions diff --git a/src/utils/config.h b/src/utils/config.h index 31ab8f60..462c2a5c 100644 --- a/src/utils/config.h +++ b/src/utils/config.h @@ -145,7 +145,6 @@ public: // Sync & data saver syncPaused, - syncPausedAlsoDisconnectNode, syncPausedAlsoDisconnectWebSocket, }; diff --git a/src/utils/nodes.cpp b/src/utils/nodes.cpp index 396890dd..38dbdb74 100644 --- a/src/utils/nodes.cpp +++ b/src/utils/nodes.cpp @@ -275,7 +275,7 @@ void Nodes::autoConnect(bool forceReconnect) { return; } - if (conf()->get(Config::syncPaused).toBool() && conf()->get(Config::syncPausedAlsoDisconnectNode).toBool()) { + if (conf()->get(Config::syncPaused).toBool()) { return; }