Skip to content

Commit 1dc4fc2

Browse files
committed
Migrate -spendzeroconfchange and -signer settings from QSettings to settings.json
1 parent a7ef6d5 commit 1dc4fc2

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

src/qt/optionsmodel.cpp

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <txdb.h> // for -dbcache defaults
2020
#include <util/string.h>
2121
#include <validation.h> // For DEFAULT_SCRIPTCHECK_THREADS
22+
#include <wallet/wallet.h> // For DEFAULT_SPEND_ZEROCONF_CHANGE
2223

2324
#include <QDebug>
2425
#include <QLatin1Char>
@@ -38,6 +39,8 @@ static const char* SettingName(OptionsModel::OptionID option)
3839
switch (option) {
3940
case OptionsModel::DatabaseCache: return "dbcache";
4041
case OptionsModel::ThreadsScriptVerif: return "par";
42+
case OptionsModel::SpendZeroConfChange: return "spendzeroconfchange";
43+
case OptionsModel::ExternalSignerPath: return "signer";
4144
default: throw std::logic_error(strprintf("GUI option %i has no corresponding node setting.", option));
4245
}
4346
}
@@ -125,7 +128,7 @@ bool OptionsModel::Init(bilingual_str& error)
125128

126129
// These are shared with the core or have a command-line parameter
127130
// 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}) {
129132
std::string setting = SettingName(option);
130133
if (node().isSettingIgnored(setting)) addOverriddenOption("-" + setting);
131134
try {
@@ -155,18 +158,6 @@ bool OptionsModel::Init(bilingual_str& error)
155158

156159
// Wallet
157160
#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-
170161
if (!settings.contains("SubFeeFromAmount")) {
171162
settings.setValue("SubFeeFromAmount", false);
172163
}
@@ -430,9 +421,9 @@ QVariant OptionsModel::getOption(OptionID option) const
430421

431422
#ifdef ENABLE_WALLET
432423
case SpendZeroConfChange:
433-
return settings.value("bSpendZeroConfChange");
424+
return SettingToBool(setting(), wallet::DEFAULT_SPEND_ZEROCONF_CHANGE);
434425
case ExternalSignerPath:
435-
return settings.value("external_signer_path");
426+
return QString::fromStdString(SettingToString(setting(), ""));
436427
case SubFeeFromAmount:
437428
return m_sub_fee_from_amount;
438429
#endif
@@ -551,14 +542,14 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
551542

552543
#ifdef ENABLE_WALLET
553544
case SpendZeroConfChange:
554-
if (settings.value("bSpendZeroConfChange") != value) {
555-
settings.setValue("bSpendZeroConfChange", value);
545+
if (changed()) {
546+
update(value.toBool());
556547
setRestartRequired(true);
557548
}
558549
break;
559550
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());
562553
setRestartRequired(true);
563554
}
564555
break;
@@ -703,4 +694,8 @@ void OptionsModel::checkAndMigrate()
703694

704695
migrate_setting(DatabaseCache, "nDatabaseCache");
705696
migrate_setting(ThreadsScriptVerif, "nThreadsScriptVerif");
697+
#ifdef ENABLE_WALLET
698+
migrate_setting(SpendZeroConfChange, "bSpendZeroConfChange");
699+
migrate_setting(ExternalSignerPath, "external_signer_path");
700+
#endif
706701
}

0 commit comments

Comments
 (0)