From 9de50d6194027bf4d757ef58f291763eacea6bfe Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Wed, 21 Jun 2023 04:32:21 -0400 Subject: [PATCH] configuration: Use paired settings --- src/yuzu/configuration/configure_system.cpp | 14 ++------------ src/yuzu/configuration/shared_widget.cpp | 4 ++++ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp index ef26fb6ce5..cb708051e3 100644 --- a/src/yuzu/configuration/configure_system.cpp +++ b/src/yuzu/configuration/configure_system.cpp @@ -107,18 +107,8 @@ void ConfigureSystem::Setup(const ConfigurationShared::Builder& builder) { for (auto setting : settings) { ConfigurationShared::Widget* widget = [this, setting, &builder]() { - if (setting->Id() == Settings::values.custom_rtc.Id()) { - // custom_rtc needs a DateTimeEdit (default is LineEdit), and a checkbox to manage - // it and custom_rtc_enabled - return builder.BuildWidget(setting, apply_funcs, - &Settings::values.custom_rtc_enabled); - } else if (setting->Id() == Settings::values.rng_seed.Id()) { - // rng_seed needs a HexEdit (default is LineEdit), and a checkbox to manage - // it and rng_seed_enabled - return builder.BuildWidget(setting, apply_funcs, - &Settings::values.rng_seed_enabled); - } else if (setting->Id() == Settings::values.speed_limit.Id()) { - // speed_limit needs a checkbox to set use_speed_limit, as well as a spinbox + if (setting->Id() == Settings::values.speed_limit.Id()) { + // speed_limit must be specified to translate the percentage return builder.BuildWidget(setting, apply_funcs, &Settings::values.use_speed_limit, ConfigurationShared::RequestType::SpinBox, tr("%", "Limit speed percentage (e.g. 50%)")); diff --git a/src/yuzu/configuration/shared_widget.cpp b/src/yuzu/configuration/shared_widget.cpp index 7670475be6..bbcee7488a 100644 --- a/src/yuzu/configuration/shared_widget.cpp +++ b/src/yuzu/configuration/shared_widget.cpp @@ -345,6 +345,10 @@ void Widget::SetupComponent(const QString& label, std::function& load_fu QLayout* layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); + if (other_setting == nullptr) { + other_setting = setting.PairedSetting(); + } + const bool require_checkbox = other_setting != nullptr && other_setting->TypeId() == typeid(bool);