mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
gui: ensure external signer option remains disabled without signers
When no external signers are available, the option to enable external signers should always be disabled. However the encrypt wallet checkbox can erroneously re-enable the external signer checkbox. To avoid this, CreateWalletDialog now stores whether signers were available during setSigners so that future calls to external_signer_checkbox->setEnabled can account for whether signers are available.
This commit is contained in:
parent
d67330d112
commit
a9b9ca82da
2 changed files with 4 additions and 2 deletions
|
@ -32,7 +32,7 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
|
|||
// set to true, enable it when isEncryptWalletChecked is false.
|
||||
ui->disable_privkeys_checkbox->setEnabled(!checked);
|
||||
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||
ui->external_signer_checkbox->setEnabled(!checked);
|
||||
ui->external_signer_checkbox->setEnabled(m_has_signers && !checked);
|
||||
#endif
|
||||
// When the disable_privkeys_checkbox is disabled, uncheck it.
|
||||
if (!ui->disable_privkeys_checkbox->isEnabled()) {
|
||||
|
@ -115,7 +115,8 @@ CreateWalletDialog::~CreateWalletDialog()
|
|||
|
||||
void CreateWalletDialog::setSigners(const std::vector<ExternalSigner>& signers)
|
||||
{
|
||||
if (!signers.empty()) {
|
||||
m_has_signers = !signers.empty();
|
||||
if (m_has_signers) {
|
||||
ui->external_signer_checkbox->setEnabled(true);
|
||||
ui->external_signer_checkbox->setChecked(true);
|
||||
ui->encrypt_wallet_checkbox->setEnabled(false);
|
||||
|
|
|
@ -35,6 +35,7 @@ public:
|
|||
|
||||
private:
|
||||
Ui::CreateWalletDialog *ui;
|
||||
bool m_has_signers = false;
|
||||
};
|
||||
|
||||
#endif // BITCOIN_QT_CREATEWALLETDIALOG_H
|
||||
|
|
Loading…
Add table
Reference in a new issue