diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2019-10-18 14:54:02 -0500 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2020-02-08 14:01:55 -0600 |
| commit | e8152b700f76da97d346b93662ef8492bc93190c (patch) | |
| tree | 919fd82b5383987bc39fcafc9a152ea8225072de /Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp | |
| parent | 6a857df219f32a6b29683f54100e4cd92edd18e3 (diff) | |
InputCommon: Allow controller settings specified with input expresions.
Diffstat (limited to 'Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/Mapping/MappingWidget.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
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 <QPushButton> #include <QTimer> +#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) |
