diff options
Diffstat (limited to 'src/yuzu/configuration/config.cpp')
-rw-r--r-- | src/yuzu/configuration/config.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index e21f15c726..1a0f75373d 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -282,22 +282,23 @@ void Config::Initialize(const std::string& config_name) { template <> void Config::ReadBasicSetting(Settings::BasicSetting<std::string>& setting) { const QString name = QString::fromStdString(setting.GetLabel()); + const auto default_value = QString::fromStdString(setting.GetDefault()); if (qt_config->value(name + QStringLiteral("/default"), false).toBool()) { - setting.SetValue(setting.GetDefault()); + setting.SetValue(default_value.toStdString()); } else { - setting.SetValue(qt_config->value(name, QString::fromStdString(setting.GetDefault())) - .toString() - .toStdString()); + setting.SetValue(qt_config->value(name, default_value).toString().toStdString()); } } + template <typename Type> void Config::ReadBasicSetting(Settings::BasicSetting<Type>& setting) { const QString name = QString::fromStdString(setting.GetLabel()); + const Type default_value = setting.GetDefault(); if (qt_config->value(name + QStringLiteral("/default"), false).toBool()) { - setting.SetValue(setting.GetDefault()); + setting.SetValue(default_value); } else { setting.SetValue( - static_cast<QVariant>(qt_config->value(name, setting.GetDefault())).value<Type>()); + static_cast<QVariant>(qt_config->value(name, default_value)).value<Type>()); } } @@ -305,10 +306,11 @@ void Config::ReadBasicSetting(Settings::BasicSetting<Type>& setting) { template <> void Config::WriteBasicSetting(const Settings::BasicSetting<std::string>& setting) { const QString name = QString::fromStdString(setting.GetLabel()); - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue() == setting.GetDefault()); - qt_config->setValue(name, QString::fromStdString(setting.GetValue())); + const std::string& value = setting.GetValue(); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, QString::fromStdString(value)); } + // Explicit float definition: use a double as Qt doesn't write legible floats to config files template <> void Config::WriteBasicSetting(const Settings::BasicSetting<float>& setting) { @@ -318,12 +320,13 @@ void Config::WriteBasicSetting(const Settings::BasicSetting<float>& setting) { setting.GetValue() == setting.GetDefault()); qt_config->setValue(name, value); } + template <typename Type> void Config::WriteBasicSetting(const Settings::BasicSetting<Type>& setting) { const QString name = QString::fromStdString(setting.GetLabel()); - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue() == setting.GetDefault()); - qt_config->setValue(name, setting.GetValue()); + const Type value = setting.GetValue(); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, value); } // Explicit float definition: use a double as Qt doesn't write legible floats to config files @@ -340,16 +343,17 @@ void Config::WriteGlobalSetting(const Settings::Setting<float>& setting) { qt_config->setValue(name, value); } } + template <typename Type> void Config::WriteGlobalSetting(const Settings::Setting<Type>& setting) { - QString name = QString::fromStdString(setting.GetLabel()); + const QString name = QString::fromStdString(setting.GetLabel()); + const Type& value = setting.GetValue(global); if (!global) { qt_config->setValue(name + QStringLiteral("/use_global"), setting.UsingGlobal()); } if (global || !setting.UsingGlobal()) { - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue(global) == setting.GetDefault()); - qt_config->setValue(name, setting.GetValue(global)); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, value); } } |