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>
@@ -38,6 +39,8 @@ static const char* SettingName(OptionsModel::OptionID option)
38
39
switch (option) {
39
40
case OptionsModel::DatabaseCache: return " dbcache" ;
40
41
case OptionsModel::ThreadsScriptVerif: return " par" ;
42
+ case OptionsModel::SpendZeroConfChange: return " spendzeroconfchange" ;
43
+ case OptionsModel::ExternalSignerPath: return " signer" ;
41
44
default : throw std::logic_error (strprintf (" GUI option %i has no corresponding node setting." , option));
42
45
}
43
46
}
@@ -125,7 +128,7 @@ bool OptionsModel::Init(bilingual_str& error)
125
128
126
129
// These are shared with the core or have a command-line parameter
127
130
// and we want command-line parameters to overwrite the GUI settings.
128
- for (OptionID option : {DatabaseCache, ThreadsScriptVerif}) {
131
+ for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath }) {
129
132
std::string setting = SettingName (option);
130
133
if (node ().isSettingIgnored (setting)) addOverriddenOption (" -" + setting);
131
134
try {
@@ -155,18 +158,6 @@ bool OptionsModel::Init(bilingual_str& error)
155
158
156
159
// Wallet
157
160
#ifdef ENABLE_WALLET
158
- if (!settings.contains (" bSpendZeroConfChange" ))
159
- settings.setValue (" bSpendZeroConfChange" , true );
160
- if (!gArgs .SoftSetBoolArg (" -spendzeroconfchange" , settings.value (" bSpendZeroConfChange" ).toBool ()))
161
- addOverriddenOption (" -spendzeroconfchange" );
162
-
163
- if (!settings.contains (" external_signer_path" ))
164
- settings.setValue (" external_signer_path" , " " );
165
-
166
- if (!gArgs .SoftSetArg (" -signer" , settings.value (" external_signer_path" ).toString ().toStdString ())) {
167
- addOverriddenOption (" -signer" );
168
- }
169
-
170
161
if (!settings.contains (" SubFeeFromAmount" )) {
171
162
settings.setValue (" SubFeeFromAmount" , false );
172
163
}
@@ -430,9 +421,9 @@ QVariant OptionsModel::getOption(OptionID option) const
430
421
431
422
#ifdef ENABLE_WALLET
432
423
case SpendZeroConfChange:
433
- return settings. value ( " bSpendZeroConfChange " );
424
+ return SettingToBool ( setting (), wallet::DEFAULT_SPEND_ZEROCONF_CHANGE );
434
425
case ExternalSignerPath:
435
- return settings. value ( " external_signer_path " );
426
+ return QString::fromStdString ( SettingToString ( setting (), " " ) );
436
427
case SubFeeFromAmount:
437
428
return m_sub_fee_from_amount;
438
429
#endif
@@ -551,14 +542,14 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
551
542
552
543
#ifdef ENABLE_WALLET
553
544
case SpendZeroConfChange:
554
- if (settings. value ( " bSpendZeroConfChange " ) != value ) {
555
- settings. setValue ( " bSpendZeroConfChange " , value);
545
+ if (changed () ) {
546
+ update ( value. toBool () );
556
547
setRestartRequired (true );
557
548
}
558
549
break ;
559
550
case ExternalSignerPath:
560
- if (settings. value ( " external_signer_path " ) != value. toString ()) {
561
- settings. setValue ( " external_signer_path " , value.toString ());
551
+ if (changed ()) {
552
+ update ( value.toString (). toStdString ());
562
553
setRestartRequired (true );
563
554
}
564
555
break ;
@@ -703,4 +694,8 @@ void OptionsModel::checkAndMigrate()
703
694
704
695
migrate_setting (DatabaseCache, " nDatabaseCache" );
705
696
migrate_setting (ThreadsScriptVerif, " nThreadsScriptVerif" );
697
+ #ifdef ENABLE_WALLET
698
+ migrate_setting (SpendZeroConfChange, " bSpendZeroConfChange" );
699
+ migrate_setting (ExternalSignerPath, " external_signer_path" );
700
+ #endif
706
701
}
0 commit comments