gui: Disable and uncheck blank when private keys are disabled

Unify the GUI's create wallet with the RPC createwallet so that the
blank flag is not set when private keys are disabled.
This commit is contained in:
Andrew Chow 2023-06-13 15:52:03 -04:00
parent da494186f2
commit 9ea31eba04

View File

@ -58,10 +58,7 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
ui->descriptor_checkbox->setChecked(checked); ui->descriptor_checkbox->setChecked(checked);
ui->encrypt_wallet_checkbox->setChecked(false); ui->encrypt_wallet_checkbox->setChecked(false);
ui->disable_privkeys_checkbox->setChecked(checked); ui->disable_privkeys_checkbox->setChecked(checked);
// The blank check box is ambiguous. This flag is always true for a ui->blank_wallet_checkbox->setChecked(false);
// watch-only wallet, even though we immedidately fetch keys from the
// external signer.
ui->blank_wallet_checkbox->setChecked(checked);
}); });
connect(ui->disable_privkeys_checkbox, &QCheckBox::toggled, [this](bool checked) { connect(ui->disable_privkeys_checkbox, &QCheckBox::toggled, [this](bool checked) {
@ -69,9 +66,10 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
// set to true, enable it when isDisablePrivateKeysChecked is false. // set to true, enable it when isDisablePrivateKeysChecked is false.
ui->encrypt_wallet_checkbox->setEnabled(!checked); ui->encrypt_wallet_checkbox->setEnabled(!checked);
// Wallets without private keys start out blank // Wallets without private keys cannot set blank
ui->blank_wallet_checkbox->setEnabled(!checked);
if (checked) { if (checked) {
ui->blank_wallet_checkbox->setChecked(true); ui->blank_wallet_checkbox->setChecked(false);
} }
// When the encrypt_wallet_checkbox is disabled, uncheck it. // When the encrypt_wallet_checkbox is disabled, uncheck it.
@ -81,8 +79,11 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
}); });
connect(ui->blank_wallet_checkbox, &QCheckBox::toggled, [this](bool checked) { connect(ui->blank_wallet_checkbox, &QCheckBox::toggled, [this](bool checked) {
if (!checked) { // Disable the disable_privkeys_checkbox when blank_wallet_checkbox is checked
ui->disable_privkeys_checkbox->setChecked(false); // as blank-ness only pertains to wallets with private keys.
ui->disable_privkeys_checkbox->setEnabled(!checked);
if (checked) {
ui->disable_privkeys_checkbox->setChecked(false);
} }
}); });