Settings: Emit ValueChanged signal from QLineEditKeyConfig and connect to UpdateValue slot on GInputsDialog
This commit is contained in:
parent
e1a91b3c4b
commit
1d213e1656
4 changed files with 114 additions and 108 deletions
|
@ -2,9 +2,10 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <QKeyEvent>
|
||||||
|
|
||||||
#include "QLineEditKeyConfig.h"
|
#include "QLineEditKeyConfig.h"
|
||||||
#include "inputs.h"
|
#include "inputs.h"
|
||||||
#include <QKeyEvent>
|
|
||||||
|
|
||||||
std::map<Button, std::string> ButtonNameMap({
|
std::map<Button, std::string> ButtonNameMap({
|
||||||
{ Button::A, "A" }, { Button::B, "B" }, { Button::X, "X" }, { Button::Y, "Y" },
|
{ Button::A, "A" }, { Button::B, "B" }, { Button::X, "X" }, { Button::Y, "Y" },
|
||||||
|
@ -15,85 +16,12 @@ std::map<Button, std::string> ButtonNameMap({
|
||||||
{ Button::Start, "Start" }, { Button::Select, "Select" }, { Button::Home, "Home" } }
|
{ Button::Start, "Start" }, { Button::Select, "Select" }, { Button::Home, "Home" } }
|
||||||
);
|
);
|
||||||
|
|
||||||
QLineEditKeyConfig::QLineEditKeyConfig(Settings::Values& temp_settings, Button button, QWidget* parent)
|
QLineEditKeyConfig::QLineEditKeyConfig(Button button, QWidget* parent)
|
||||||
: button(button), temp_settings(temp_settings), QLineEdit(parent) {}
|
: button(button), QLineEdit(parent) {}
|
||||||
|
|
||||||
void QLineEditKeyConfig::keyPressEvent(QKeyEvent* event) {
|
void QLineEditKeyConfig::keyPressEvent(QKeyEvent* event) {
|
||||||
QString key_name = GInputsDialog::GetKeyName(event->key());
|
QString key_name = GInputsDialog::GetKeyName(event->key());
|
||||||
setText(key_name);
|
setText(key_name);
|
||||||
|
|
||||||
int key = event->key();
|
ValueChanged(button, event->key());
|
||||||
switch (button) {
|
|
||||||
case Button::A:
|
|
||||||
temp_settings.pad_a_key = key;
|
|
||||||
break;
|
|
||||||
case Button::B:
|
|
||||||
temp_settings.pad_b_key = key;
|
|
||||||
break;
|
|
||||||
case Button::X:
|
|
||||||
temp_settings.pad_x_key = key;
|
|
||||||
break;
|
|
||||||
case Button::Y:
|
|
||||||
temp_settings.pad_y_key = key;
|
|
||||||
break;
|
|
||||||
case Button::L:
|
|
||||||
temp_settings.pad_l_key = key;
|
|
||||||
break;
|
|
||||||
case Button::R:
|
|
||||||
temp_settings.pad_r_key = key;
|
|
||||||
break;
|
|
||||||
case Button::ZL:
|
|
||||||
temp_settings.pad_zl_key = key;
|
|
||||||
break;
|
|
||||||
case Button::ZR:
|
|
||||||
temp_settings.pad_zr_key = key;
|
|
||||||
break;
|
|
||||||
case Button::DUp:
|
|
||||||
temp_settings.pad_dup_key = key;
|
|
||||||
break;
|
|
||||||
case Button::DDown:
|
|
||||||
temp_settings.pad_ddown_key = key;
|
|
||||||
break;
|
|
||||||
case Button::DLeft:
|
|
||||||
temp_settings.pad_dleft_key = key;
|
|
||||||
break;
|
|
||||||
case Button::DRight:
|
|
||||||
temp_settings.pad_dright_key = key;
|
|
||||||
break;
|
|
||||||
case Button::SUp:
|
|
||||||
temp_settings.pad_sup_key = key;
|
|
||||||
break;
|
|
||||||
case Button::SDown:
|
|
||||||
temp_settings.pad_sdown_key = key;
|
|
||||||
break;
|
|
||||||
case Button::SLeft:
|
|
||||||
temp_settings.pad_sleft_key = key;
|
|
||||||
break;
|
|
||||||
case Button::SRight:
|
|
||||||
temp_settings.pad_sright_key = key;
|
|
||||||
break;
|
|
||||||
case Button::CUp:
|
|
||||||
temp_settings.pad_cup_key = key;
|
|
||||||
break;
|
|
||||||
case Button::CDown:
|
|
||||||
temp_settings.pad_cdown_key = key;
|
|
||||||
break;
|
|
||||||
case Button::CLeft:
|
|
||||||
temp_settings.pad_cleft_key = key;
|
|
||||||
break;
|
|
||||||
case Button::CRight:
|
|
||||||
temp_settings.pad_cright_key = key;
|
|
||||||
break;
|
|
||||||
case Button::Home:
|
|
||||||
temp_settings.pad_home_key = key;
|
|
||||||
break;
|
|
||||||
case Button::Start:
|
|
||||||
temp_settings.pad_start_key = key;
|
|
||||||
break;
|
|
||||||
case Button::Select:
|
|
||||||
temp_settings.pad_select_key = key;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include "../core/settings.h"
|
|
||||||
|
#include <QLineEdit>
|
||||||
|
|
||||||
class QKeyEvent;
|
class QKeyEvent;
|
||||||
|
|
||||||
|
@ -28,9 +28,9 @@ class QLineEditKeyConfig : public QLineEdit {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Button button;
|
Button button;
|
||||||
QLineEditKeyConfig(Settings::Values& temp_settings, Button button, QWidget* parent = nullptr);
|
QLineEditKeyConfig(Button button, QWidget* parent = nullptr);
|
||||||
void keyPressEvent(QKeyEvent* event) override;
|
void keyPressEvent(QKeyEvent* event) override;
|
||||||
|
|
||||||
private:
|
signals:
|
||||||
Settings::Values& temp_settings;
|
void ValueChanged(Button, int);
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include "common/logging/log.h"
|
|
||||||
|
|
||||||
#include <QKeySequence>
|
#include <QKeySequence>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
@ -11,6 +9,7 @@
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
|
|
||||||
|
#include "common/logging/log.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "inputs.h"
|
#include "inputs.h"
|
||||||
|
|
||||||
|
@ -19,29 +18,29 @@ GInputsDialog::GInputsDialog(QWidget* parent) : QDialog(parent) {
|
||||||
temp_settings = Settings::Values(Settings::values);
|
temp_settings = Settings::Values(Settings::values);
|
||||||
|
|
||||||
// create the lineEdits
|
// create the lineEdits
|
||||||
lineEdit_A = new QLineEditKeyConfig(temp_settings, Button::A);
|
lineEdit_A = new QLineEditKeyConfig(Button::A);
|
||||||
lineEdit_B = new QLineEditKeyConfig(temp_settings, Button::B);
|
lineEdit_B = new QLineEditKeyConfig(Button::B);
|
||||||
lineEdit_X = new QLineEditKeyConfig(temp_settings, Button::X);
|
lineEdit_X = new QLineEditKeyConfig(Button::X);
|
||||||
lineEdit_Y = new QLineEditKeyConfig(temp_settings, Button::Y);
|
lineEdit_Y = new QLineEditKeyConfig(Button::Y);
|
||||||
lineEdit_L = new QLineEditKeyConfig(temp_settings, Button::L);
|
lineEdit_L = new QLineEditKeyConfig(Button::L);
|
||||||
lineEdit_R = new QLineEditKeyConfig(temp_settings, Button::R);
|
lineEdit_R = new QLineEditKeyConfig(Button::R);
|
||||||
lineEdit_ZL = new QLineEditKeyConfig(temp_settings, Button::ZL);
|
lineEdit_ZL = new QLineEditKeyConfig(Button::ZL);
|
||||||
lineEdit_ZR = new QLineEditKeyConfig(temp_settings, Button::ZR);
|
lineEdit_ZR = new QLineEditKeyConfig(Button::ZR);
|
||||||
lineEdit_dUp = new QLineEditKeyConfig(temp_settings, Button::DUp);
|
lineEdit_dUp = new QLineEditKeyConfig(Button::DUp);
|
||||||
lineEdit_dDown = new QLineEditKeyConfig(temp_settings, Button::DDown);
|
lineEdit_dDown = new QLineEditKeyConfig(Button::DDown);
|
||||||
lineEdit_dLeft = new QLineEditKeyConfig(temp_settings, Button::DLeft);
|
lineEdit_dLeft = new QLineEditKeyConfig(Button::DLeft);
|
||||||
lineEdit_dRight = new QLineEditKeyConfig(temp_settings, Button::DRight);
|
lineEdit_dRight = new QLineEditKeyConfig(Button::DRight);
|
||||||
lineEdit_sUp = new QLineEditKeyConfig(temp_settings, Button::SUp);
|
lineEdit_sUp = new QLineEditKeyConfig(Button::SUp);
|
||||||
lineEdit_sDown = new QLineEditKeyConfig(temp_settings, Button::SDown);
|
lineEdit_sDown = new QLineEditKeyConfig(Button::SDown);
|
||||||
lineEdit_sLeft = new QLineEditKeyConfig(temp_settings, Button::SLeft);
|
lineEdit_sLeft = new QLineEditKeyConfig(Button::SLeft);
|
||||||
lineEdit_sRight = new QLineEditKeyConfig(temp_settings, Button::SRight);
|
lineEdit_sRight = new QLineEditKeyConfig(Button::SRight);
|
||||||
lineEdit_cUp = new QLineEditKeyConfig(temp_settings, Button::CUp);
|
lineEdit_cUp = new QLineEditKeyConfig(Button::CUp);
|
||||||
lineEdit_cDown = new QLineEditKeyConfig(temp_settings, Button::CDown);
|
lineEdit_cDown = new QLineEditKeyConfig(Button::CDown);
|
||||||
lineEdit_cLeft = new QLineEditKeyConfig(temp_settings, Button::CLeft);
|
lineEdit_cLeft = new QLineEditKeyConfig(Button::CLeft);
|
||||||
lineEdit_cRight = new QLineEditKeyConfig(temp_settings, Button::CRight);
|
lineEdit_cRight = new QLineEditKeyConfig(Button::CRight);
|
||||||
lineEdit_Home = new QLineEditKeyConfig(temp_settings, Button::Home);
|
lineEdit_Home = new QLineEditKeyConfig(Button::Home);
|
||||||
lineEdit_Start = new QLineEditKeyConfig(temp_settings, Button::Start);
|
lineEdit_Start = new QLineEditKeyConfig(Button::Start);
|
||||||
lineEdit_Select = new QLineEditKeyConfig(temp_settings, Button::Select);
|
lineEdit_Select = new QLineEditKeyConfig(Button::Select);
|
||||||
|
|
||||||
lineEdits = {{
|
lineEdits = {{
|
||||||
lineEdit_A, lineEdit_B, lineEdit_X, lineEdit_Y, lineEdit_L, lineEdit_R, lineEdit_ZL, lineEdit_ZR,
|
lineEdit_A, lineEdit_B, lineEdit_X, lineEdit_Y, lineEdit_L, lineEdit_R, lineEdit_ZL, lineEdit_ZR,
|
||||||
|
@ -59,9 +58,11 @@ GInputsDialog::GInputsDialog(QWidget* parent) : QDialog(parent) {
|
||||||
int row = i % numRow;
|
int row = i % numRow;
|
||||||
int labelColumn = i / numRow * 2;
|
int labelColumn = i / numRow * 2;
|
||||||
QLineEditKeyConfig *lineEdit = lineEdits[i];
|
QLineEditKeyConfig *lineEdit = lineEdits[i];
|
||||||
QLabel *label = new QLabel(QString::fromStdString(ButtonNameMap[lineEdit->button]));
|
QLabel *label = new QLabel(tr(ButtonNameMap[lineEdit->button].c_str()));
|
||||||
grid->addWidget(label, row, labelColumn);
|
grid->addWidget(label, row, labelColumn);
|
||||||
grid->addWidget(lineEdit, row, labelColumn + 1);
|
grid->addWidget(lineEdit, row, labelColumn + 1);
|
||||||
|
|
||||||
|
QObject::connect(lineEdit, SIGNAL(ValueChanged(Button, int)), this, SLOT(UpdateValue(Button, int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// the button box that contains the restore default/ok/cancel buttons
|
// the button box that contains the restore default/ok/cancel buttons
|
||||||
|
@ -91,6 +92,82 @@ GInputsDialog::GInputsDialog(QWidget* parent) : QDialog(parent) {
|
||||||
UpdateKeyLabels();
|
UpdateKeyLabels();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GInputsDialog::UpdateValue(Button button, int key) {
|
||||||
|
switch (button) {
|
||||||
|
case Button::A:
|
||||||
|
temp_settings.pad_a_key = key;
|
||||||
|
break;
|
||||||
|
case Button::B:
|
||||||
|
temp_settings.pad_b_key = key;
|
||||||
|
break;
|
||||||
|
case Button::X:
|
||||||
|
temp_settings.pad_x_key = key;
|
||||||
|
break;
|
||||||
|
case Button::Y:
|
||||||
|
temp_settings.pad_y_key = key;
|
||||||
|
break;
|
||||||
|
case Button::L:
|
||||||
|
temp_settings.pad_l_key = key;
|
||||||
|
break;
|
||||||
|
case Button::R:
|
||||||
|
temp_settings.pad_r_key = key;
|
||||||
|
break;
|
||||||
|
case Button::ZL:
|
||||||
|
temp_settings.pad_zl_key = key;
|
||||||
|
break;
|
||||||
|
case Button::ZR:
|
||||||
|
temp_settings.pad_zr_key = key;
|
||||||
|
break;
|
||||||
|
case Button::DUp:
|
||||||
|
temp_settings.pad_dup_key = key;
|
||||||
|
break;
|
||||||
|
case Button::DDown:
|
||||||
|
temp_settings.pad_ddown_key = key;
|
||||||
|
break;
|
||||||
|
case Button::DLeft:
|
||||||
|
temp_settings.pad_dleft_key = key;
|
||||||
|
break;
|
||||||
|
case Button::DRight:
|
||||||
|
temp_settings.pad_dright_key = key;
|
||||||
|
break;
|
||||||
|
case Button::SUp:
|
||||||
|
temp_settings.pad_sup_key = key;
|
||||||
|
break;
|
||||||
|
case Button::SDown:
|
||||||
|
temp_settings.pad_sdown_key = key;
|
||||||
|
break;
|
||||||
|
case Button::SLeft:
|
||||||
|
temp_settings.pad_sleft_key = key;
|
||||||
|
break;
|
||||||
|
case Button::SRight:
|
||||||
|
temp_settings.pad_sright_key = key;
|
||||||
|
break;
|
||||||
|
case Button::CUp:
|
||||||
|
temp_settings.pad_cup_key = key;
|
||||||
|
break;
|
||||||
|
case Button::CDown:
|
||||||
|
temp_settings.pad_cdown_key = key;
|
||||||
|
break;
|
||||||
|
case Button::CLeft:
|
||||||
|
temp_settings.pad_cleft_key = key;
|
||||||
|
break;
|
||||||
|
case Button::CRight:
|
||||||
|
temp_settings.pad_cright_key = key;
|
||||||
|
break;
|
||||||
|
case Button::Home:
|
||||||
|
temp_settings.pad_home_key = key;
|
||||||
|
break;
|
||||||
|
case Button::Start:
|
||||||
|
temp_settings.pad_start_key = key;
|
||||||
|
break;
|
||||||
|
case Button::Select:
|
||||||
|
temp_settings.pad_select_key = key;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GInputsDialog::UpdateKeyLabels() {
|
void GInputsDialog::UpdateKeyLabels() {
|
||||||
lineEdit_A->setText(GetKeyName(temp_settings.pad_a_key));
|
lineEdit_A->setText(GetKeyName(temp_settings.pad_a_key));
|
||||||
lineEdit_B->setText(GetKeyName(temp_settings.pad_b_key));
|
lineEdit_B->setText(GetKeyName(temp_settings.pad_b_key));
|
||||||
|
|
|
@ -58,4 +58,5 @@ private:
|
||||||
private slots:
|
private slots:
|
||||||
void SaveSettings();
|
void SaveSettings();
|
||||||
void RestoreDefaultSettings();
|
void RestoreDefaultSettings();
|
||||||
|
void UpdateValue(Button button, int key);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue