diff options
| author | spaina93 <72979505+spaina93@users.noreply.github.com> | 2026-11-02 08:35:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-11-02 08:35:22 +0100 |
| commit | b7d654b9dcaf3e8f688c2c16e77737947b41a108 (patch) | |
| tree | a758abf4611adcaecfebd2c4ae89e1a20a681eaa /src/yuzu/configuration/shared_widget.cpp | |
| parent | 9c55e70d790a4cc9507d80dbb9a9d6224175574e (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.cpp | 8 |
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"; |
