diff --git a/src/qt/receivecoinsdialog.cpp b/src/qt/receivecoinsdialog.cpp index bc96b5a6f7..8942188dc9 100644 --- a/src/qt/receivecoinsdialog.cpp +++ b/src/qt/receivecoinsdialog.cpp @@ -101,7 +101,7 @@ void ReceiveCoinsDialog::setModel(WalletModel *_model) } // eventually disable the main receive button if private key operations are disabled - ui->receiveButton->setEnabled(!model->privateKeysDisabled()); + ui->receiveButton->setEnabled(model->canGetAddresses()); } } diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index f139152042..73fce02554 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -571,6 +571,11 @@ bool WalletModel::privateKeysDisabled() const return m_wallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS); } +bool WalletModel::canGetAddresses() const +{ + return m_wallet->hdEnabled() || (!m_wallet->hdEnabled() && !m_wallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)); +} + QString WalletModel::getWalletName() const { return QString::fromStdString(m_wallet->getWalletName()); diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index c3c8f36909..8d7b210d2e 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -214,6 +214,7 @@ public: static bool isWalletEnabled(); bool privateKeysDisabled() const; + bool canGetAddresses() const; interfaces::Node& node() const { return m_node; } interfaces::Wallet& wallet() const { return *m_wallet; }