19
19
#include < txdb.h> // for -dbcache defaults
20
20
#include < util/string.h>
21
21
#include < validation.h> // For DEFAULT_SCRIPTCHECK_THREADS
22
+ #include < wallet/wallet.h> // For DEFAULT_SPEND_ZEROCONF_CHANGE
22
23
23
24
#include < QDebug>
24
25
#include < QLatin1Char>
@@ -37,6 +38,8 @@ const char* SettingName(OptionsModel::OptionID option)
37
38
switch (option) {
38
39
case OptionsModel::DatabaseCache: return " dbcache" ;
39
40
case OptionsModel::ThreadsScriptVerif: return " par" ;
41
+ case OptionsModel::SpendZeroConfChange: return " spendzeroconfchange" ;
42
+ case OptionsModel::ExternalSignerPath: return " signer" ;
40
43
default : throw std::logic_error (strprintf (" GUI option %i has no corresponding node setting." , option));
41
44
};
42
45
}
@@ -120,7 +123,7 @@ bool OptionsModel::Init(bilingual_str& error)
120
123
121
124
// These are shared with the core or have a command-line parameter
122
125
// and we want command-line parameters to overwrite the GUI settings.
123
- for (OptionID option : {DatabaseCache, ThreadsScriptVerif}) {
126
+ for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath }) {
124
127
std::string setting = SettingName (option);
125
128
if (node ().isSettingIgnored (setting)) addOverriddenOption (" -" + setting);
126
129
try {
@@ -149,18 +152,6 @@ bool OptionsModel::Init(bilingual_str& error)
149
152
150
153
// Wallet
151
154
#ifdef ENABLE_WALLET
152
- if (!settings.contains (" bSpendZeroConfChange" ))
153
- settings.setValue (" bSpendZeroConfChange" , true );
154
- if (!gArgs .SoftSetBoolArg (" -spendzeroconfchange" , settings.value (" bSpendZeroConfChange" ).toBool ()))
155
- addOverriddenOption (" -spendzeroconfchange" );
156
-
157
- if (!settings.contains (" external_signer_path" ))
158
- settings.setValue (" external_signer_path" , " " );
159
-
160
- if (!gArgs .SoftSetArg (" -signer" , settings.value (" external_signer_path" ).toString ().toStdString ())) {
161
- addOverriddenOption (" -signer" );
162
- }
163
-
164
155
if (!settings.contains (" SubFeeFromAmount" )) {
165
156
settings.setValue (" SubFeeFromAmount" , false );
166
157
}
@@ -424,9 +415,9 @@ QVariant OptionsModel::getOption(OptionID option) const
424
415
425
416
#ifdef ENABLE_WALLET
426
417
case SpendZeroConfChange:
427
- return settings. value ( " bSpendZeroConfChange " );
418
+ return SettingToBool ( setting (), wallet::DEFAULT_SPEND_ZEROCONF_CHANGE );
428
419
case ExternalSignerPath:
429
- return settings. value ( " external_signer_path " );
420
+ return QString::fromStdString ( SettingToString ( setting (), " " ) );
430
421
case SubFeeFromAmount:
431
422
return m_sub_fee_from_amount;
432
423
#endif
@@ -545,14 +536,14 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
545
536
546
537
#ifdef ENABLE_WALLET
547
538
case SpendZeroConfChange:
548
- if (settings. value ( " bSpendZeroConfChange " ) != value ) {
549
- settings. setValue ( " bSpendZeroConfChange " , value);
539
+ if (changed () ) {
540
+ update ( value. toBool () );
550
541
setRestartRequired (true );
551
542
}
552
543
break ;
553
544
case ExternalSignerPath:
554
- if (settings. value ( " external_signer_path " ) != value. toString ()) {
555
- settings. setValue ( " external_signer_path " , value.toString ());
545
+ if (changed ()) {
546
+ update ( value.toString (). toStdString ());
556
547
setRestartRequired (true );
557
548
}
558
549
break ;
@@ -697,4 +688,8 @@ void OptionsModel::checkAndMigrate()
697
688
698
689
migrate_setting (DatabaseCache, " nDatabaseCache" );
699
690
migrate_setting (ThreadsScriptVerif, " nThreadsScriptVerif" );
691
+ #ifdef ENABLE_WALLET
692
+ migrate_setting (SpendZeroConfChange, " bSpendZeroConfChange" );
693
+ migrate_setting (ExternalSignerPath, " external_signer_path" );
694
+ #endif
700
695
}
0 commit comments