From f6ff8a0235dc99c9fbafcc57ea9eeefaf094e90c Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 14 Aug 2020 14:02:37 -0400 Subject: configuration_shared: Simplify name lookup in highlighting functions We can query the given object name directly from the widget itself. This removes any potential for forgetting to change the name if the widget gets renamed and makes the API much simpler (just pass in the widget, and not worry about its name). --- src/yuzu/configuration/configuration_shared.cpp | 60 +++++++++++-------------- 1 file changed, 27 insertions(+), 33 deletions(-) (limited to 'src/yuzu/configuration/configuration_shared.cpp') diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp index f9becab6e9..18482795cf 100644 --- a/src/yuzu/configuration/configuration_shared.cpp +++ b/src/yuzu/configuration/configuration_shared.cpp @@ -72,18 +72,18 @@ void ConfigurationShared::SetPerGameSetting( ConfigurationShared::USE_GLOBAL_OFFSET); } -void ConfigurationShared::SetHighlight(QWidget* widget, const std::string& name, bool highlighted) { +void ConfigurationShared::SetHighlight(QWidget* widget, bool highlighted) { if (highlighted) { widget->setStyleSheet(QStringLiteral("QWidget#%1 { background-color:rgba(0,203,255,0.5) }") - .arg(QString::fromStdString(name))); + .arg(widget->objectName())); } else { widget->setStyleSheet(QStringLiteral("QWidget#%1 { background-color:rgba(0,0,0,0) }") - .arg(QString::fromStdString(name))); + .arg(widget->objectName())); } widget->show(); } -void ConfigurationShared::SetColoredTristate(QCheckBox* checkbox, const std::string& name, +void ConfigurationShared::SetColoredTristate(QCheckBox* checkbox, const Settings::Setting& setting, CheckState& tracker) { if (setting.UsingGlobal()) { @@ -91,45 +91,39 @@ void ConfigurationShared::SetColoredTristate(QCheckBox* checkbox, const std::str } else { tracker = (setting.GetValue() == setting.GetValue(true)) ? CheckState::On : CheckState::Off; } - SetHighlight(checkbox, name, tracker != CheckState::Global); - QObject::connect(checkbox, &QCheckBox::clicked, checkbox, - [checkbox, name, setting, &tracker]() { - tracker = static_cast((static_cast(tracker) + 1) % - static_cast(CheckState::Count)); - if (tracker == CheckState::Global) { - checkbox->setChecked(setting.GetValue(true)); - } - SetHighlight(checkbox, name, tracker != CheckState::Global); - }); + SetHighlight(checkbox, tracker != CheckState::Global); + QObject::connect(checkbox, &QCheckBox::clicked, checkbox, [checkbox, setting, &tracker] { + tracker = static_cast((static_cast(tracker) + 1) % + static_cast(CheckState::Count)); + if (tracker == CheckState::Global) { + checkbox->setChecked(setting.GetValue(true)); + } + SetHighlight(checkbox, tracker != CheckState::Global); + }); } -void ConfigurationShared::SetColoredTristate(QCheckBox* checkbox, const std::string& name, - bool global, bool state, bool global_state, - CheckState& tracker) { +void ConfigurationShared::SetColoredTristate(QCheckBox* checkbox, bool global, bool state, + bool global_state, CheckState& tracker) { if (global) { tracker = CheckState::Global; } else { tracker = (state == global_state) ? CheckState::On : CheckState::Off; } - SetHighlight(checkbox, name, tracker != CheckState::Global); - QObject::connect(checkbox, &QCheckBox::clicked, checkbox, - [checkbox, name, global_state, &tracker]() { - tracker = static_cast((static_cast(tracker) + 1) % - static_cast(CheckState::Count)); - if (tracker == CheckState::Global) { - checkbox->setChecked(global_state); - } - SetHighlight(checkbox, name, tracker != CheckState::Global); - }); + SetHighlight(checkbox, tracker != CheckState::Global); + QObject::connect(checkbox, &QCheckBox::clicked, checkbox, [checkbox, global_state, &tracker] { + tracker = static_cast((static_cast(tracker) + 1) % + static_cast(CheckState::Count)); + if (tracker == CheckState::Global) { + checkbox->setChecked(global_state); + } + SetHighlight(checkbox, tracker != CheckState::Global); + }); } -void ConfigurationShared::SetColoredComboBox(QComboBox* combobox, QWidget* target, - const std::string& target_name, int global) { +void ConfigurationShared::SetColoredComboBox(QComboBox* combobox, QWidget* target, int global) { InsertGlobalItem(combobox, global); - QObject::connect(combobox, static_cast(&QComboBox::activated), target, - [target, target_name](int index) { - ConfigurationShared::SetHighlight(target, target_name, index != 0); - }); + QObject::connect(combobox, qOverload(&QComboBox::activated), target, + [target](int index) { SetHighlight(target, index != 0); }); } void ConfigurationShared::InsertGlobalItem(QComboBox* combobox, int global_index) { -- cgit v1.2.3