[Qt] Disable creating receive addresses when private keys are disabled

This commit is contained in:
Jonas Schnelli 2017-02-01 13:54:28 +01:00
parent 2f15c2bc20
commit c7b8f343e9
No known key found for this signature in database
GPG key ID: 1EB776BB03C7922D
5 changed files with 13 additions and 0 deletions

View file

@ -426,6 +426,7 @@ public:
}
unsigned int getConfirmTarget() override { return m_wallet.m_confirm_target; }
bool hdEnabled() override { return m_wallet.IsHDEnabled(); }
bool IsWalletFlagSet(uint64_t flag) override { return m_wallet.IsWalletFlagSet(flag); }
OutputType getDefaultAddressType() override { return m_wallet.m_default_address_type; }
OutputType getDefaultChangeType() override { return m_wallet.m_default_change_type; }
std::unique_ptr<Handler> handleUnload(UnloadFn fn) override

View file

@ -236,6 +236,9 @@ public:
// Return whether HD enabled.
virtual bool hdEnabled() = 0;
// check if a certain wallet flag is set.
virtual bool IsWalletFlagSet(uint64_t flag) = 0;
// Get default address type.
virtual OutputType getDefaultAddressType() = 0;

View file

@ -99,6 +99,9 @@ void ReceiveCoinsDialog::setModel(WalletModel *_model)
} else {
ui->useBech32->setCheckState(Qt::Unchecked);
}
// eventually disable the main receive button if private key operations are disabled
ui->receiveButton->setEnabled(!model->privateKeysDisabled());
}
}

View file

@ -558,6 +558,11 @@ bool WalletModel::isWalletEnabled()
return !gArgs.GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET);
}
bool WalletModel::privateKeysDisabled() const
{
return m_wallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS);
}
QString WalletModel::getWalletName() const
{
return QString::fromStdString(m_wallet->getWalletName());

View file

@ -197,6 +197,7 @@ public:
bool bumpFee(uint256 hash);
static bool isWalletEnabled();
bool privateKeysDisabled() const;
interfaces::Node& node() const { return m_node; }
interfaces::Wallet& wallet() const { return *m_wallet; }