mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-18 12:53:03 +02:00
Migrate -lang setting from QSettings to settings.json
This commit is contained in:
parent
9a016a3c07
commit
504b06b1de
@ -896,7 +896,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="overriddenByCommandLineInfoLabel">
|
<widget class="QLabel" name="overriddenByCommandLineInfoLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Options set in this dialog are overridden by the command line or in the configuration file:</string>
|
<string>Options set in this dialog are overridden by the command line:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::PlainText</enum>
|
<enum>Qt::PlainText</enum>
|
||||||
|
@ -53,6 +53,7 @@ static const char* SettingName(OptionsModel::OptionID option)
|
|||||||
case OptionsModel::ProxyIPTor: return "onion";
|
case OptionsModel::ProxyIPTor: return "onion";
|
||||||
case OptionsModel::ProxyPortTor: return "onion";
|
case OptionsModel::ProxyPortTor: return "onion";
|
||||||
case OptionsModel::ProxyUseTor: return "onion";
|
case OptionsModel::ProxyUseTor: return "onion";
|
||||||
|
case OptionsModel::Language: return "lang";
|
||||||
default: throw std::logic_error(strprintf("GUI option %i has no corresponding node setting.", option));
|
default: throw std::logic_error(strprintf("GUI option %i has no corresponding node setting.", option));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,6 +138,7 @@ bool OptionsModel::Init(bilingual_str& error)
|
|||||||
ProxySetting onion = ParseProxyString(SettingToString(node().getPersistentSetting("onion"), GetDefaultProxyAddress().toStdString()));
|
ProxySetting onion = ParseProxyString(SettingToString(node().getPersistentSetting("onion"), GetDefaultProxyAddress().toStdString()));
|
||||||
m_onion_ip = onion.ip;
|
m_onion_ip = onion.ip;
|
||||||
m_onion_port = onion.port;
|
m_onion_port = onion.port;
|
||||||
|
language = QString::fromStdString(SettingToString(node().getPersistentSetting("lang"), ""));
|
||||||
|
|
||||||
checkAndMigrate();
|
checkAndMigrate();
|
||||||
|
|
||||||
@ -190,7 +192,7 @@ bool OptionsModel::Init(bilingual_str& error)
|
|||||||
// These are shared with the core or have a command-line parameter
|
// These are shared with the core or have a command-line parameter
|
||||||
// and we want command-line parameters to overwrite the GUI settings.
|
// and we want command-line parameters to overwrite the GUI settings.
|
||||||
for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath, MapPortUPnP,
|
for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath, MapPortUPnP,
|
||||||
MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor}) {
|
MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor, Language}) {
|
||||||
std::string setting = SettingName(option);
|
std::string setting = SettingName(option);
|
||||||
if (node().isSettingIgnored(setting)) addOverriddenOption("-" + setting);
|
if (node().isSettingIgnored(setting)) addOverriddenOption("-" + setting);
|
||||||
try {
|
try {
|
||||||
@ -205,9 +207,6 @@ bool OptionsModel::Init(bilingual_str& error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If setting doesn't exist create it with defaults.
|
// If setting doesn't exist create it with defaults.
|
||||||
//
|
|
||||||
// If gArgs.SoftSetArg() or gArgs.SoftSetBoolArg() return false we were overridden
|
|
||||||
// by command-line and show this in the UI.
|
|
||||||
|
|
||||||
// Main
|
// Main
|
||||||
if (!settings.contains("strDataDir"))
|
if (!settings.contains("strDataDir"))
|
||||||
@ -222,13 +221,6 @@ bool OptionsModel::Init(bilingual_str& error)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
if (!settings.contains("language"))
|
|
||||||
settings.setValue("language", "");
|
|
||||||
if (!gArgs.SoftSetArg("-lang", settings.value("language").toString().toStdString()))
|
|
||||||
addOverriddenOption("-lang");
|
|
||||||
|
|
||||||
language = settings.value("language").toString();
|
|
||||||
|
|
||||||
if (!settings.contains("UseEmbeddedMonospacedFont")) {
|
if (!settings.contains("UseEmbeddedMonospacedFont")) {
|
||||||
settings.setValue("UseEmbeddedMonospacedFont", "true");
|
settings.setValue("UseEmbeddedMonospacedFont", "true");
|
||||||
}
|
}
|
||||||
@ -421,7 +413,7 @@ QVariant OptionsModel::getOption(OptionID option) const
|
|||||||
case ThirdPartyTxUrls:
|
case ThirdPartyTxUrls:
|
||||||
return strThirdPartyTxUrls;
|
return strThirdPartyTxUrls;
|
||||||
case Language:
|
case Language:
|
||||||
return settings.value("language");
|
return QString::fromStdString(SettingToString(setting(), ""));
|
||||||
case UseEmbeddedMonospacedFont:
|
case UseEmbeddedMonospacedFont:
|
||||||
return m_use_embedded_monospaced_font;
|
return m_use_embedded_monospaced_font;
|
||||||
case CoinControlFeatures:
|
case CoinControlFeatures:
|
||||||
@ -564,8 +556,8 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Language:
|
case Language:
|
||||||
if (settings.value("language") != value) {
|
if (changed()) {
|
||||||
settings.setValue("language", value);
|
update(value.toString().toStdString());
|
||||||
setRestartRequired(true);
|
setRestartRequired(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -711,6 +703,7 @@ void OptionsModel::checkAndMigrate()
|
|||||||
migrate_setting(ProxyUse, "fUseProxy");
|
migrate_setting(ProxyUse, "fUseProxy");
|
||||||
migrate_setting(ProxyIPTor, "addrSeparateProxyTor");
|
migrate_setting(ProxyIPTor, "addrSeparateProxyTor");
|
||||||
migrate_setting(ProxyUseTor, "fUseSeparateProxyTor");
|
migrate_setting(ProxyUseTor, "fUseSeparateProxyTor");
|
||||||
|
migrate_setting(Language, "language");
|
||||||
|
|
||||||
// In case migrating QSettings caused any settings value to change, rerun
|
// In case migrating QSettings caused any settings value to change, rerun
|
||||||
// parameter interaction code to update other settings. This is particularly
|
// parameter interaction code to update other settings. This is particularly
|
||||||
|
Loading…
x
Reference in New Issue
Block a user