From 14f22ad829f7beac65756e5fea75a8e02a0ba20f Mon Sep 17 00:00:00 2001 From: Michael M Date: Fri, 3 Nov 2017 13:28:45 -0700 Subject: [PATCH] Qt Mapping*: make logic around setting/loading settings more consistent Changes: - signal for widget value changed: sets controller setting, saves settings - Update(): only updates widget from existing controller setting - Clear(): sets controller setting, saves settings, and calls Update() --- Source/Core/DolphinQt2/Config/Mapping/MappingBool.cpp | 8 ++++---- Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp | 4 +--- Source/Core/DolphinQt2/Config/Mapping/MappingNumeric.cpp | 8 ++++---- Source/Core/DolphinQt2/Config/Mapping/MappingWidget.cpp | 7 +++---- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Source/Core/DolphinQt2/Config/Mapping/MappingBool.cpp b/Source/Core/DolphinQt2/Config/Mapping/MappingBool.cpp index 363a41e4ba..1c35a53910 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/MappingBool.cpp +++ b/Source/Core/DolphinQt2/Config/Mapping/MappingBool.cpp @@ -10,7 +10,7 @@ MappingBool::MappingBool(MappingWidget* widget, ControllerEmu::BooleanSetting* setting) : QCheckBox(QString::fromStdString(setting->m_ui_name)), m_parent(widget), m_setting(setting) { - setChecked(setting->GetValue()); + Update(); Connect(); } @@ -18,18 +18,18 @@ void MappingBool::Connect() { connect(this, &QCheckBox::stateChanged, this, [this](int value) { m_setting->SetValue(value); - Update(); + m_parent->SaveSettings(); }); } void MappingBool::Clear() { - setChecked(false); + m_setting->SetValue(false); + m_parent->SaveSettings(); Update(); } void MappingBool::Update() { setChecked(m_setting->GetValue()); - m_parent->SaveSettings(); } diff --git a/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp b/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp index d30be53ec5..dd3254ac26 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp +++ b/Source/Core/DolphinQt2/Config/Mapping/MappingButton.cpp @@ -83,9 +83,8 @@ void MappingButton::OnButtonTimeout() void MappingButton::Clear() { - m_parent->Update(); m_reference->SetExpression(""); - Update(); + m_parent->SaveSettings(); } void MappingButton::Update() @@ -93,7 +92,6 @@ void MappingButton::Update() const auto lock = ControllerEmu::EmulatedController::GetStateLock(); m_reference->UpdateReference(g_controller_interface, m_parent->GetParent()->GetDeviceQualifier()); setText(EscapeAmpersand(QString::fromStdString(m_reference->GetExpression()))); - m_parent->SaveSettings(); } void MappingButton::mouseReleaseEvent(QMouseEvent* event) diff --git a/Source/Core/DolphinQt2/Config/Mapping/MappingNumeric.cpp b/Source/Core/DolphinQt2/Config/Mapping/MappingNumeric.cpp index a13d17fa5c..cb59c232c9 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/MappingNumeric.cpp +++ b/Source/Core/DolphinQt2/Config/Mapping/MappingNumeric.cpp @@ -11,7 +11,7 @@ MappingNumeric::MappingNumeric(MappingWidget* widget, ControllerEmu::NumericSett : m_parent(widget), m_setting(setting), m_range(setting->m_high - setting->m_low) { setRange(setting->m_low, setting->m_high); - setValue(setting->m_low + setting->GetValue() * m_range); + Update(); Connect(); } @@ -20,18 +20,18 @@ void MappingNumeric::Connect() connect(this, static_cast(&QSpinBox::valueChanged), this, [this](int value) { m_setting->SetValue(static_cast(value - m_setting->m_low) / m_range); - Update(); + m_parent->SaveSettings(); }); } void MappingNumeric::Clear() { - setValue(m_setting->m_low + (m_setting->m_low + m_setting->m_high) / 2); + m_setting->SetValue(m_setting->m_low + (m_setting->m_low + m_setting->m_high) / 2); + m_parent->SaveSettings(); Update(); } void MappingNumeric::Update() { setValue(m_setting->m_low + m_setting->GetValue() * m_range); - m_parent->SaveSettings(); } diff --git a/Source/Core/DolphinQt2/Config/Mapping/MappingWidget.cpp b/Source/Core/DolphinQt2/Config/Mapping/MappingWidget.cpp index bde2f6bcfb..883d329473 100644 --- a/Source/Core/DolphinQt2/Config/Mapping/MappingWidget.cpp +++ b/Source/Core/DolphinQt2/Config/Mapping/MappingWidget.cpp @@ -57,14 +57,15 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con auto* control_ref = control->control_ref.get(); - connect(button, &MappingButton::AdvancedPressed, [this, control_ref] { + connect(button, &MappingButton::AdvancedPressed, [this, button, control_ref] { if (m_parent->GetDevice() == nullptr) return; IOWindow io(this, m_parent->GetController(), control_ref, control_ref->IsInput() ? IOWindow::Type::Input : IOWindow::Type::Output); io.exec(); - Update(); + SaveSettings(); + button->Update(); }); m_buttons.push_back(button); @@ -111,8 +112,6 @@ void MappingWidget::Update() for (auto* checkbox : m_bools) checkbox->Update(); - - LoadSettings(); } ControllerEmu::EmulatedController* MappingWidget::GetController() const