diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 18 |
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 | ||
| 1258 | void Config::ReadSettingGeneric(Settings::BasicSetting* const setting) { | 1258 | void 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 | ||