diff options
author | Lioncash <mathew1800@gmail.com> | 2020-08-14 14:02:37 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2020-08-14 14:17:02 -0400 |
commit | fe861098778c325264bf015488fd960d5f33c6d6 (patch) | |
tree | a6cd86f4b79299895abde4eca2cc9e8f3060d55a /src/yuzu/configuration/configuration_shared.cpp | |
parent | f482b4b40de1f8bd89cc555c7219efe0497c38f6 (diff) |
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).
Diffstat (limited to 'src/yuzu/configuration/configuration_shared.cpp')
-rw-r--r-- | src/yuzu/configuration/configuration_shared.cpp | 60 |
1 files changed, 27 insertions, 33 deletions
diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp index f9becab6e..18482795c 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<bool>& 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<CheckState>((static_cast<int>(tracker) + 1) % - static_cast<int>(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<CheckState>((static_cast<int>(tracker) + 1) % + static_cast<int>(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<CheckState>((static_cast<int>(tracker) + 1) % - static_cast<int>(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<CheckState>((static_cast<int>(tracker) + 1) % + static_cast<int>(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<void (QComboBox::*)(int)>(&QComboBox::activated), target, - [target, target_name](int index) { - ConfigurationShared::SetHighlight(target, target_name, index != 0); - }); + QObject::connect(combobox, qOverload<int>(&QComboBox::activated), target, + [target](int index) { SetHighlight(target, index != 0); }); } void ConfigurationShared::InsertGlobalItem(QComboBox* combobox, int global_index) { |