From 1e6832c1846ec03f9cde0593d1c731228994b8bb Mon Sep 17 00:00:00 2001 From: tobtoht Date: Sat, 14 Aug 2021 16:53:22 +0200 Subject: [PATCH] Don't allow manually storing wallet during synchronization --- src/MainWindow.cpp | 12 +++++++++++- src/MainWindow.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index c612164..914e044 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -236,7 +236,7 @@ void MainWindow::initMenu() { connect(ui->actionViewOnly, &QAction::triggered, this, &MainWindow::showViewOnlyDialog); // [Wallet] -> [Advanced] - connect(ui->actionStore_wallet, &QAction::triggered, [this]{m_ctx->wallet->store();}); + connect(ui->actionStore_wallet, &QAction::triggered, this, &MainWindow::tryStoreWallet); connect(ui->actionUpdate_balance, &QAction::triggered, [this]{m_ctx->updateBalance();}); connect(ui->actionRefresh_tabs, &QAction::triggered, [this]{m_ctx->refreshModels();}); connect(ui->actionRescan_spent, &QAction::triggered, this, &MainWindow::rescanSpent); @@ -530,6 +530,16 @@ void MainWindow::setStatusText(const QString &text, bool override, int timeout) } } +void MainWindow::tryStoreWallet() { + if (m_ctx->wallet->connectionStatus() == Wallet::ConnectionStatus::ConnectionStatus_Synchronizing) { + QMessageBox::warning(this, "Save wallet", "Unable to save wallet during synchronization.\n\n" + "Wait until synchronization is finished and try again."); + return; + } + + m_ctx->wallet->store(); +} + void MainWindow::onSynchronized() { this->updateNetStats(); this->setStatusText("Synchronized"); diff --git a/src/MainWindow.h b/src/MainWindow.h index 6def9dd..883329d 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -180,6 +180,7 @@ private slots: void onUpdatesAvailable(const QJsonObject &updates); void toggleSearchbar(bool enabled); void onSetStatusText(const QString &text); + void tryStoreWallet(); private: friend WindowManager;