From e8152b700f76da97d346b93662ef8492bc93190c Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 18 Oct 2019 14:54:02 -0500 Subject: InputCommon: Allow controller settings specified with input expresions. --- .../DolphinQt/Config/Mapping/MappingWidget.cpp | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp') diff --git a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp index 1e2aabd3ec..5ba6e70e29 100644 --- a/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp +++ b/Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp @@ -11,6 +11,7 @@ #include #include +#include "DolphinQt/Config/Mapping/IOWindow.h" #include "DolphinQt/Config/Mapping/MappingButton.h" #include "DolphinQt/Config/Mapping/MappingIndicator.h" #include "DolphinQt/Config/Mapping/MappingNumeric.h" @@ -141,7 +142,31 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con } if (setting_widget) - form_layout->addRow(tr(setting->GetUIName()), setting_widget); + { + const auto hbox = new QHBoxLayout; + hbox->addWidget(setting_widget); + + const auto advanced_button = new QPushButton(tr("...")); + advanced_button->setFixedWidth( + QFontMetrics(font()).boundingRect(advanced_button->text()).width() * 2); + + hbox->addWidget(advanced_button); + + advanced_button->connect( + advanced_button, &QPushButton::clicked, [this, &setting = *setting.get()]() { + setting.SetExpressionFromValue(); + + IOWindow io(this, GetController(), &setting.GetInputReference(), IOWindow::Type::Input); + io.exec(); + + setting.SimplifyIfPossible(); + + ConfigChanged(); + SaveSettings(); + }); + + form_layout->addRow(tr(setting->GetUIName()), hbox); + } } if (group->can_be_disabled) -- cgit v1.2.3