aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/shared_widget.cpp
diff options
context:
space:
mode:
authorspaina93 <72979505+spaina93@users.noreply.github.com>2026-11-02 08:35:22 +0100
committerGitHub <noreply@github.com>2026-11-02 08:35:22 +0100
commitb7d654b9dcaf3e8f688c2c16e77737947b41a108 (patch)
treea758abf4611adcaecfebd2c4ae89e1a20a681eaa /src/yuzu/configuration/shared_widget.cpp
parent9c55e70d790a4cc9507d80dbb9a9d6224175574e (diff)
qt: save frame generation settings (#283)
Six frame generation settings are paired with frame_gen, so each widget made its own checkbox and saved it to frame_gen on apply. The last one won, so ticking only the first box left frame generation off. Don't make a checkbox for a paired setting without the Paired specialization. frame_gen is the only such setting, and it gets its own widget again. Keep the pairing itself, Android uses it to hide the options. On Qt, hide them while frame generation is off. Fixes #251 Assisted-by: Claude Opus 5.5 (diagnosis, code and commit message) Signed-off-by: spaina93 <72979505+spaina93@users.noreply.github.com>
Diffstat (limited to 'src/yuzu/configuration/shared_widget.cpp')
-rw-r--r--src/yuzu/configuration/shared_widget.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/yuzu/configuration/shared_widget.cpp b/src/yuzu/configuration/shared_widget.cpp
index 0e829e9100..4971c0cfa7 100644
--- a/src/yuzu/configuration/shared_widget.cpp
+++ b/src/yuzu/configuration/shared_widget.cpp
@@ -515,7 +515,13 @@ void Widget::SetupComponent(const QString& label, std::function<void()>& load_fu
layout->setContentsMargins(0, 0, 0, 0);
if (other_setting == nullptr) {
- other_setting = setting.PairedSetting();
+ // A paired setting without the Paired specialization gets a widget of its own, and
+ // several settings can share it, so they must not each save their own checkbox to it
+ auto* const paired_setting = setting.PairedSetting();
+ if (paired_setting != nullptr &&
+ paired_setting->Specialization() == Settings::Specialization::Paired) {
+ other_setting = paired_setting;
+ }
}
const bool require_checkbox = other_setting != nullptr && other_setting->TypeId() == "bool";