From 6b166f1819701a997e52e7fc740b3eb45524a758 Mon Sep 17 00:00:00 2001 From: luc-git <102831178+luc-git@users.noreply.github.com> Date: Tue, 28 Nov 2023 19:53:25 +0100 Subject: [PATCH] DolphinQt/Mapping: Add "Use Mouse Controlled Pointing" button. --- .../Config/Mapping/MappingWidget.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp index cfb9483ba6..f9c4ffb29c 100644 --- a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp @@ -3,6 +3,8 @@ #include "DolphinQt/Config/Mapping/MappingWidget.h" +#include + #include #include #include @@ -25,6 +27,7 @@ #include "InputCommon/ControllerEmu/ControllerEmu.h" #include "InputCommon/ControllerEmu/Setting/NumericSetting.h" #include "InputCommon/ControllerEmu/StickGate.h" +#include "InputCommon/ControllerInterface/ControllerInterface.h" MappingWidget::MappingWidget(MappingWindow* parent) : m_parent(parent) { @@ -160,6 +163,26 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con [this, group] { ShowAdvancedControlGroupDialog(group); }); } + if (group->type == ControllerEmu::GroupType::Cursor) + { + QPushButton* mouse_button = new QPushButton(tr("Use Mouse Controlled Pointing")); + form_layout->insertRow(2, mouse_button); + connect(mouse_button, &QCheckBox::clicked, [this, group] { + std::string default_device = g_controller_interface.GetDefaultDeviceString() + ":"; + const std::string controller_device = GetController()->GetDefaultDevice().ToString() + ":"; + if (default_device == controller_device) + { + default_device.clear(); + } + group->SetControlExpression(0, fmt::format("`{}Cursor Y-`", default_device)); + group->SetControlExpression(1, fmt::format("`{}Cursor Y+`", default_device)); + group->SetControlExpression(2, fmt::format("`{}Cursor X-`", default_device)); + group->SetControlExpression(3, fmt::format("`{}Cursor X+`", default_device)); + emit ConfigChanged(); + GetController()->UpdateReferences(g_controller_interface); + }); + } + return group_box; }