Skip to content

Commit e81086f

Browse files
committed
Migrate -lang setting from QSettings to settings.json
1 parent c77f2f0 commit e81086f

File tree

2 files changed

+8
-15
lines changed

2 files changed

+8
-15
lines changed

src/qt/forms/optionsdialog.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@
896896
<item>
897897
<widget class="QLabel" name="overriddenByCommandLineInfoLabel">
898898
<property name="text">
899-
<string>Options set in this dialog are overridden by the command line or in the configuration file:</string>
899+
<string>Options set in this dialog are overridden by the command line:</string>
900900
</property>
901901
<property name="textFormat">
902902
<enum>Qt::PlainText</enum>

src/qt/optionsmodel.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ const char* SettingName(OptionsModel::OptionID option)
5252
case OptionsModel::ProxyIPTor: return "onion";
5353
case OptionsModel::ProxyPortTor: return "onion";
5454
case OptionsModel::ProxyUseTor: return "onion";
55+
case OptionsModel::Language: return "lang";
5556
default: throw std::logic_error(strprintf("GUI option %i has no corresponding node setting.", option));
5657
};
5758
}
@@ -132,6 +133,7 @@ bool OptionsModel::Init(bilingual_str& error)
132133
ProxySetting onion = ParseProxyString(SettingToString(node().getPersistentSetting("onion"), GetDefaultProxyAddress().toStdString()));
133134
m_onion_ip = onion.ip;
134135
m_onion_port = onion.port;
136+
language = QString::fromStdString(SettingToString(node().getPersistentSetting("lang"), ""));
135137

136138
checkAndMigrate();
137139

@@ -185,7 +187,7 @@ bool OptionsModel::Init(bilingual_str& error)
185187
// These are shared with the core or have a command-line parameter
186188
// and we want command-line parameters to overwrite the GUI settings.
187189
for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath, MapPortUPnP,
188-
MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor}) {
190+
MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor, Language}) {
189191
std::string setting = SettingName(option);
190192
if (node().isSettingIgnored(setting)) addOverriddenOption("-" + setting);
191193
try {
@@ -199,9 +201,6 @@ bool OptionsModel::Init(bilingual_str& error)
199201
}
200202

201203
// If setting doesn't exist create it with defaults.
202-
//
203-
// If gArgs.SoftSetArg() or gArgs.SoftSetBoolArg() return false we were overridden
204-
// by command-line and show this in the UI.
205204

206205
// Main
207206
if (!settings.contains("strDataDir"))
@@ -216,13 +215,6 @@ bool OptionsModel::Init(bilingual_str& error)
216215
#endif
217216

218217
// Display
219-
if (!settings.contains("language"))
220-
settings.setValue("language", "");
221-
if (!gArgs.SoftSetArg("-lang", settings.value("language").toString().toStdString()))
222-
addOverriddenOption("-lang");
223-
224-
language = settings.value("language").toString();
225-
226218
if (!settings.contains("UseEmbeddedMonospacedFont")) {
227219
settings.setValue("UseEmbeddedMonospacedFont", "true");
228220
}
@@ -415,7 +407,7 @@ QVariant OptionsModel::getOption(OptionID option) const
415407
case ThirdPartyTxUrls:
416408
return strThirdPartyTxUrls;
417409
case Language:
418-
return settings.value("language");
410+
return QString::fromStdString(SettingToString(setting(), ""));
419411
case UseEmbeddedMonospacedFont:
420412
return m_use_embedded_monospaced_font;
421413
case CoinControlFeatures:
@@ -558,8 +550,8 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
558550
}
559551
break;
560552
case Language:
561-
if (settings.value("language") != value) {
562-
settings.setValue("language", value);
553+
if (changed()) {
554+
update(value.toString().toStdString());
563555
setRestartRequired(true);
564556
}
565557
break;
@@ -710,6 +702,7 @@ void OptionsModel::checkAndMigrate()
710702
migrate_setting(ProxyUse, "fUseProxy");
711703
migrate_setting(ProxyIPTor, "addrSeparateProxyTor");
712704
migrate_setting(ProxyUseTor, "fUseSeparateProxyTor");
705+
migrate_setting(Language, "language");
713706

714707
// In case migrating QSettings caused any settings value to change, rerun
715708
// parameter interaction code to update other settings. This is particularly

0 commit comments

Comments
 (0)