Skip to content

Commit 03826ae

Browse files
committed
Merge bitcoin-core/gui#396: Ensure external signer option remains disabled without signers
a9b9ca8 gui: ensure external signer option remains disabled without signers (Andrew Chow) Pull request description: 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. Fixes bitcoin#395 ACKs for top commit: hebasto: ACK a9b9ca8, tested on Linux Mint 20.2 (Qt 5.12.8). Sjors: tACK a9b9ca8 jarolrod: ACK a9b9ca8 Tree-SHA512: 98951bcadc23fce99a66ea2d367c44360989e888c253845a767e1f7085c594562d0f099de4130f4a078c5072aa7806294097d976ee6407291f3d3c5a4a608b44
2 parents 7ebc4c6 + a9b9ca8 commit 03826ae

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/qt/createwalletdialog.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
3232
// set to true, enable it when isEncryptWalletChecked is false.
3333
ui->disable_privkeys_checkbox->setEnabled(!checked);
3434
#ifdef ENABLE_EXTERNAL_SIGNER
35-
ui->external_signer_checkbox->setEnabled(!checked);
35+
ui->external_signer_checkbox->setEnabled(m_has_signers && !checked);
3636
#endif
3737
// When the disable_privkeys_checkbox is disabled, uncheck it.
3838
if (!ui->disable_privkeys_checkbox->isEnabled()) {
@@ -115,7 +115,8 @@ CreateWalletDialog::~CreateWalletDialog()
115115

116116
void CreateWalletDialog::setSigners(const std::vector<ExternalSigner>& signers)
117117
{
118-
if (!signers.empty()) {
118+
m_has_signers = !signers.empty();
119+
if (m_has_signers) {
119120
ui->external_signer_checkbox->setEnabled(true);
120121
ui->external_signer_checkbox->setChecked(true);
121122
ui->encrypt_wallet_checkbox->setEnabled(false);

src/qt/createwalletdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class CreateWalletDialog : public QDialog
3535

3636
private:
3737
Ui::CreateWalletDialog *ui;
38+
bool m_has_signers = false;
3839
};
3940

4041
#endif // BITCOIN_QT_CREATEWALLETDIALOG_H

0 commit comments

Comments
 (0)