From 05c8063ac131ef5087f645c57b649157099f786b Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Sat, 29 Jul 2023 13:23:06 -0400 Subject: [PATCH] config(qt): Fix generic read setting Previously was not respecting whether the setting was default. --- src/yuzu/configuration/config.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index f2ef34cbca..7857167359 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -1256,23 +1256,27 @@ void Config::WriteCategory(Settings::Category category) { } void Config::ReadSettingGeneric(Settings::BasicSetting* const setting) { - if (!setting->Save()) { + if (!setting->Save() || (!setting->Switchable() && !global)) { return; } const QString name = QString::fromStdString(setting->GetLabel()); const auto default_value = QVariant::fromValue(QString::fromStdString(setting->DefaultToString())); - if (setting->Switchable()) { - const bool use_global = - qt_config->value(name + QStringLiteral("/use_global"), true).value(); + bool use_global = true; + if (setting->Switchable() && !global) { + use_global = qt_config->value(name + QStringLiteral("/use_global"), true).value(); setting->SetGlobal(use_global); + } - if (global || !use_global) { + if (global || !use_global) { + const bool is_default = ReadSetting(name + QStringLiteral("/default"), true).value(); + if (!is_default) { setting->LoadString(ReadSetting(name, default_value).value().toStdString()); + } else { + // Empty string resets the Setting to default + setting->LoadString(""); } - } else if (global) { - setting->LoadString(ReadSetting(name, default_value).value().toStdString()); } }