From: gg Date: Mon, 12 Jan 2026 14:40:06 +0000 (-0500) Subject: fix sync 1000 block even when paused bug X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=5a385678b311d5cdc2d44476af8c81ae9e2d23e5;p=gamesguru%2Ffeather.git fix sync 1000 block even when paused bug --- diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 406a3e55..a67be3d4 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -219,11 +219,11 @@ void MainWindow::initStatusBar() { conf()->set(Config::syncPaused, checked); if (m_wallet) { if (checked) { - m_wallet->pauseRefresh(); - + m_wallet->setSyncPaused(true); + this->setPausedSyncStatus(); } else { - m_wallet->startRefresh(); + m_wallet->setSyncPaused(false); this->setStatusText(tr("Resuming sync...")); } } @@ -816,11 +816,11 @@ void MainWindow::onWalletOpened() { this->updateTitle(); m_nodes->allowConnection(); if (!conf()->get(Config::disableAutoRefresh).toBool()) { - m_nodes->connectToNode(); if (conf()->get(Config::syncPaused).toBool()) { - m_wallet->pauseRefresh(); + m_wallet->setSyncPaused(true); this->setPausedSyncStatus(); } + m_nodes->connectToNode(); } m_updateBytes.start(250); @@ -1712,7 +1712,7 @@ void MainWindow::onDeviceError(const QString &error, quint64 errorCode) { } } m_statusBtnHwDevice->setIcon(this->hardwareDevicePairedIcon()); - m_wallet->startRefresh(); + m_wallet->setSyncPaused(conf()->get(Config::syncPaused).toBool()); m_showDeviceError = false; } diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 8f3c8a93..df7179cb 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -431,7 +431,9 @@ void Wallet::initAsync(const QString &daemonAddress, bool trustedDaemon, quint64 if (success) { qDebug() << "init async finished - starting refresh"; - startRefresh(); + if (!m_syncPaused) { + startRefresh(); + } } }); if (future.first) @@ -568,6 +570,15 @@ void Wallet::syncStatusUpdated(quint64 height, quint64 target) { emit syncStatus(height, target, false); } +void Wallet::setSyncPaused(bool paused) { + m_syncPaused = paused; + if (paused) { + pauseRefresh(); + } else { + startRefresh(); + } +} + void Wallet::skipToTip() { if (!m_wallet2) return; diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index 2b345310..4341efe2 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -229,6 +229,7 @@ public: quint64 daemonBlockChainTargetHeight() const; void syncStatusUpdated(quint64 height, quint64 target); + void setSyncPaused(bool paused); Q_INVOKABLE void skipToTip(); Q_INVOKABLE void syncDateRange(const QDate &start, const QDate &end); void fullSync(); // Rescans from wallet creation height, not genesis block @@ -534,6 +535,7 @@ private: std::atomic m_stopHeight{0}; std::atomic m_rangeSyncActive{false}; + std::atomic m_syncPaused{false}; }; #endif // FEATHER_WALLET_H