@@ -27,14 +27,39 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
27
27
});
28
28
29
29
connect (ui->encrypt_wallet_checkbox , &QCheckBox::toggled, [this ](bool checked) {
30
- // Disable the disable_privkeys_checkbox when isEncryptWalletChecked is
30
+ // Disable the disable_privkeys_checkbox and external_signer_checkbox when isEncryptWalletChecked is
31
31
// set to true, enable it when isEncryptWalletChecked is false.
32
32
ui->disable_privkeys_checkbox ->setEnabled (!checked);
33
+ ui->external_signer_checkbox ->setEnabled (!checked);
33
34
34
35
// When the disable_privkeys_checkbox is disabled, uncheck it.
35
36
if (!ui->disable_privkeys_checkbox ->isEnabled ()) {
36
37
ui->disable_privkeys_checkbox ->setChecked (false );
37
38
}
39
+
40
+ // When the external_signer_checkbox box is disabled, uncheck it.
41
+ if (!ui->external_signer_checkbox ->isEnabled ()) {
42
+ ui->external_signer_checkbox ->setChecked (false );
43
+ }
44
+
45
+ });
46
+
47
+ connect (ui->external_signer_checkbox , &QCheckBox::toggled, [this ](bool checked) {
48
+ ui->encrypt_wallet_checkbox ->setEnabled (!checked);
49
+ ui->blank_wallet_checkbox ->setEnabled (!checked);
50
+ ui->disable_privkeys_checkbox ->setEnabled (!checked);
51
+ ui->descriptor_checkbox ->setEnabled (!checked);
52
+
53
+ // The external signer checkbox is only enabled when a device is detected.
54
+ // In that case it is checked by default. Toggling it restores the other
55
+ // options to their default.
56
+ ui->descriptor_checkbox ->setChecked (checked);
57
+ ui->encrypt_wallet_checkbox ->setChecked (false );
58
+ ui->disable_privkeys_checkbox ->setChecked (checked);
59
+ // The blank check box is ambiguous. This flag is always true for a
60
+ // watch-only wallet, even though we immedidately fetch keys from the
61
+ // external signer.
62
+ ui->blank_wallet_checkbox ->setChecked (checked);
38
63
});
39
64
40
65
connect (ui->disable_privkeys_checkbox , &QCheckBox::toggled, [this ](bool checked) {
@@ -63,11 +88,22 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) :
63
88
ui->descriptor_checkbox ->setToolTip (tr (" Compiled without sqlite support (required for descriptor wallets)" ));
64
89
ui->descriptor_checkbox ->setEnabled (false );
65
90
ui->descriptor_checkbox ->setChecked (false );
91
+ ui->external_signer_checkbox ->setEnabled (false );
92
+ ui->external_signer_checkbox ->setChecked (false );
66
93
#endif
94
+
67
95
#ifndef USE_BDB
68
96
ui->descriptor_checkbox ->setEnabled (false );
69
97
ui->descriptor_checkbox ->setChecked (true );
70
98
#endif
99
+
100
+ #ifndef ENABLE_EXTERNAL_SIGNER
101
+ // : "External signing" means using devices such as hardware wallets.
102
+ ui->external_signer_checkbox ->setToolTip (tr (" Compiled without external signing support (required for external signing)" ));
103
+ ui->external_signer_checkbox ->setEnabled (false );
104
+ ui->external_signer_checkbox ->setChecked (false );
105
+ #endif
106
+
71
107
}
72
108
73
109
CreateWalletDialog::~CreateWalletDialog ()
@@ -99,3 +135,8 @@ bool CreateWalletDialog::isDescriptorWalletChecked() const
99
135
{
100
136
return ui->descriptor_checkbox ->isChecked ();
101
137
}
138
+
139
+ bool CreateWalletDialog::isExternalSignerChecked () const
140
+ {
141
+ return ui->external_signer_checkbox ->isChecked ();
142
+ }
0 commit comments