diff --git a/src/duckstation-qt/consolesettingswidget.cpp b/src/duckstation-qt/consolesettingswidget.cpp index d9eb24322..f12a3417f 100644 --- a/src/duckstation-qt/consolesettingswidget.cpp +++ b/src/duckstation-qt/consolesettingswidget.cpp @@ -154,10 +154,8 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa &ConsoleSettingsWidget::onEnableCPUClockSpeedControlChecked); connect(m_ui.cpuClockSpeed, &QSlider::valueChanged, this, &ConsoleSettingsWidget::onCPUClockSpeedValueChanged); - SettingWidgetBinder::SetAvailability(m_ui.cpuExecutionModeLabel, - !m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterpreter)); - SettingWidgetBinder::SetAvailability(m_ui.cpuExecutionMode, - !m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterpreter)); + SettingWidgetBinder::SetAvailability( + m_ui.cpuExecutionMode, !m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterpreter), m_ui.cpuExecutionModeLabel); calculateCPUClockValue(); } diff --git a/src/duckstation-qt/settingwidgetbinder.h b/src/duckstation-qt/settingwidgetbinder.h index 3fd118fa0..193994e44 100644 --- a/src/duckstation-qt/settingwidgetbinder.h +++ b/src/duckstation-qt/settingwidgetbinder.h @@ -1497,12 +1497,22 @@ static inline void BindWidgetToFolderSetting(SettingsInterface* sif, QLineEdit* } template -static inline void SetAvailability(WidgetType* widget, bool available) +static inline void DisconnectWidget(WidgetType* widget) +{ + using Accessor = SettingAccessor; + Accessor::disconnect(widget); +} + +template +static inline void SetAvailability(WidgetType* widget, bool available, QLabel* widget_label = nullptr) { if (available) return; - widget->disconnect(); + if (widget_label) + widget_label->setEnabled(false); + + DisconnectWidget(widget); if constexpr (std::is_same_v) { @@ -1530,11 +1540,4 @@ static inline void SetAvailability(WidgetType* widget, bool available) widget->setEnabled(false); } -template -static inline void DisconnectWidget(WidgetType* widget) -{ - using Accessor = SettingAccessor; - Accessor::disconnect(widget); -} - } // namespace SettingWidgetBinder