summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/configuration/configure_input.cpp34
-rw-r--r--src/yuzu/configuration/configure_input.h3
-rw-r--r--src/yuzu/configuration/configure_mouse_advanced.cpp4
3 files changed, 20 insertions, 21 deletions
diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp
index e58c62c9a..ec46dc4e3 100644
--- a/src/yuzu/configuration/configure_input.cpp
+++ b/src/yuzu/configuration/configure_input.cpp
@@ -20,6 +20,19 @@
20#include "yuzu/configuration/configure_input_player.h" 20#include "yuzu/configuration/configure_input_player.h"
21#include "yuzu/configuration/configure_mouse_advanced.h" 21#include "yuzu/configuration/configure_mouse_advanced.h"
22 22
23namespace {
24template <typename Dialog, typename... Args>
25void CallConfigureDialog(ConfigureInput& parent, Args&&... args) {
26 parent.applyConfiguration();
27 Dialog dialog(&parent, std::forward<Args>(args)...);
28
29 const auto res = dialog.exec();
30 if (res == QDialog::Accepted) {
31 dialog.applyConfiguration();
32 }
33}
34} // Anonymous namespace
35
23ConfigureInput::ConfigureInput(QWidget* parent) 36ConfigureInput::ConfigureInput(QWidget* parent)
24 : QWidget(parent), ui(std::make_unique<Ui::ConfigureInput>()) { 37 : QWidget(parent), ui(std::make_unique<Ui::ConfigureInput>()) {
25 ui->setupUi(this); 38 ui->setupUi(this);
@@ -59,31 +72,20 @@ ConfigureInput::ConfigureInput(QWidget* parent)
59 72
60 for (std::size_t i = 0; i < players_configure.size(); ++i) { 73 for (std::size_t i = 0; i < players_configure.size(); ++i) {
61 connect(players_configure[i], &QPushButton::pressed, this, 74 connect(players_configure[i], &QPushButton::pressed, this,
62 [this, i]() { CallConfigureDialog<ConfigureInputPlayer>(i, false); }); 75 [this, i] { CallConfigureDialog<ConfigureInputPlayer>(*this, i, false); });
63 } 76 }
64 77
65 connect(ui->handheld_configure, &QPushButton::pressed, this, 78 connect(ui->handheld_configure, &QPushButton::pressed, this,
66 [this]() { CallConfigureDialog<ConfigureInputPlayer>(8, false); }); 79 [this] { CallConfigureDialog<ConfigureInputPlayer>(*this, 8, false); });
67 80
68 connect(ui->debug_configure, &QPushButton::pressed, this, 81 connect(ui->debug_configure, &QPushButton::pressed, this,
69 [this]() { CallConfigureDialog<ConfigureInputPlayer>(9, true); }); 82 [this] { CallConfigureDialog<ConfigureInputPlayer>(*this, 9, true); });
70 83
71 connect(ui->mouse_advanced, &QPushButton::pressed, this, 84 connect(ui->mouse_advanced, &QPushButton::pressed, this,
72 [this]() { CallConfigureDialog<ConfigureMouseAdvanced>(); }); 85 [this] { CallConfigureDialog<ConfigureMouseAdvanced>(*this); });
73 86
74 connect(ui->touchscreen_advanced, &QPushButton::pressed, this, 87 connect(ui->touchscreen_advanced, &QPushButton::pressed, this,
75 [this]() { CallConfigureDialog<ConfigureTouchscreenAdvanced>(); }); 88 [this] { CallConfigureDialog<ConfigureTouchscreenAdvanced>(*this); });
76}
77
78template <typename Dialog, typename... Args>
79void ConfigureInput::CallConfigureDialog(Args&&... args) {
80 this->applyConfiguration();
81 Dialog dialog(this, std::forward<Args>(args)...);
82
83 const auto res = dialog.exec();
84 if (res == QDialog::Accepted) {
85 dialog.applyConfiguration();
86 }
87} 89}
88 90
89void ConfigureInput::OnDockedModeChanged(bool last_state, bool new_state) { 91void ConfigureInput::OnDockedModeChanged(bool last_state, bool new_state) {
diff --git a/src/yuzu/configuration/configure_input.h b/src/yuzu/configuration/configure_input.h
index 0de442bf0..e8723dfcb 100644
--- a/src/yuzu/configuration/configure_input.h
+++ b/src/yuzu/configuration/configure_input.h
@@ -32,9 +32,6 @@ public:
32private: 32private:
33 void updateUIEnabled(); 33 void updateUIEnabled();
34 34
35 template <typename Dialog, typename... Args>
36 void CallConfigureDialog(Args&&... args);
37
38 void OnDockedModeChanged(bool last_state, bool new_state); 35 void OnDockedModeChanged(bool last_state, bool new_state);
39 36
40 /// Load configuration settings. 37 /// Load configuration settings.
diff --git a/src/yuzu/configuration/configure_mouse_advanced.cpp b/src/yuzu/configuration/configure_mouse_advanced.cpp
index dab58fbaa..ef857035e 100644
--- a/src/yuzu/configuration/configure_mouse_advanced.cpp
+++ b/src/yuzu/configuration/configure_mouse_advanced.cpp
@@ -4,11 +4,11 @@
4 4
5#include <algorithm> 5#include <algorithm>
6#include <memory> 6#include <memory>
7#include <utility> 7
8#include <QKeyEvent> 8#include <QKeyEvent>
9#include <QMenu> 9#include <QMenu>
10#include <QMessageBox>
11#include <QTimer> 10#include <QTimer>
11
12#include "common/assert.h" 12#include "common/assert.h"
13#include "common/param_package.h" 13#include "common/param_package.h"
14#include "input_common/main.h" 14#include "input_common/main.h"