summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar lat9nq2023-07-29 13:23:06 -0400
committerGravatar lat9nq2023-07-29 13:23:06 -0400
commit05c8063ac131ef5087f645c57b649157099f786b (patch)
tree28979adda2626646d8ce90ddebf747a4093d1c03
parentsettings: Correct Linkage member impl location (diff)
downloadyuzu-05c8063ac131ef5087f645c57b649157099f786b.tar.gz
yuzu-05c8063ac131ef5087f645c57b649157099f786b.tar.xz
yuzu-05c8063ac131ef5087f645c57b649157099f786b.zip
config(qt): Fix generic read setting
Previously was not respecting whether the setting was default.
-rw-r--r--src/yuzu/configuration/config.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index f2ef34cbc..785716735 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -1256,23 +1256,27 @@ void Config::WriteCategory(Settings::Category category) {
1256} 1256}
1257 1257
1258void Config::ReadSettingGeneric(Settings::BasicSetting* const setting) { 1258void Config::ReadSettingGeneric(Settings::BasicSetting* const setting) {
1259 if (!setting->Save()) { 1259 if (!setting->Save() || (!setting->Switchable() && !global)) {
1260 return; 1260 return;
1261 } 1261 }
1262 const QString name = QString::fromStdString(setting->GetLabel()); 1262 const QString name = QString::fromStdString(setting->GetLabel());
1263 const auto default_value = 1263 const auto default_value =
1264 QVariant::fromValue<QString>(QString::fromStdString(setting->DefaultToString())); 1264 QVariant::fromValue<QString>(QString::fromStdString(setting->DefaultToString()));
1265 1265
1266 if (setting->Switchable()) { 1266 bool use_global = true;
1267 const bool use_global = 1267 if (setting->Switchable() && !global) {
1268 qt_config->value(name + QStringLiteral("/use_global"), true).value<bool>(); 1268 use_global = qt_config->value(name + QStringLiteral("/use_global"), true).value<bool>();
1269 setting->SetGlobal(use_global); 1269 setting->SetGlobal(use_global);
1270 }
1270 1271
1271 if (global || !use_global) { 1272 if (global || !use_global) {
1273 const bool is_default = ReadSetting(name + QStringLiteral("/default"), true).value<bool>();
1274 if (!is_default) {
1272 setting->LoadString(ReadSetting(name, default_value).value<QString>().toStdString()); 1275 setting->LoadString(ReadSetting(name, default_value).value<QString>().toStdString());
1276 } else {
1277 // Empty string resets the Setting to default
1278 setting->LoadString("");
1273 } 1279 }
1274 } else if (global) {
1275 setting->LoadString(ReadSetting(name, default_value).value<QString>().toStdString());
1276 } 1280 }
1277} 1281}
1278 1282