remappable inputs in progress
This commit is contained in:
@@ -9,9 +9,9 @@ GeneralSettings::GeneralSettings() : settings(QSettings::UserScope) {
|
||||
description->setToolTip("Path where game saves are stored.");
|
||||
selectedFolderLabel = new QLabel(Options::GetSavesPath().c_str());
|
||||
selectedFolderLabel->setDisabled(true);
|
||||
folderSelectButton = new QPushButton("Choose...");
|
||||
folderSelectButton = new QToolButton();
|
||||
|
||||
connect(folderSelectButton, &QPushButton::clicked, this, [&] {
|
||||
connect(folderSelectButton, &QToolButton::clicked, this, [&] {
|
||||
auto dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), QCoreApplication::applicationDirPath(),
|
||||
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||
selectedFolderLabel->setText(dir);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QToolButton>
|
||||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QSettings>
|
||||
@@ -8,7 +8,7 @@
|
||||
class GeneralSettings final : public QWidget {
|
||||
Q_OBJECT
|
||||
QLabel *description;
|
||||
QPushButton *folderSelectButton;
|
||||
QToolButton *folderSelectButton;
|
||||
QLabel *selectedFolderLabel;
|
||||
QVBoxLayout *v;
|
||||
QHBoxLayout *h;
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
#include <InputSettings.hpp>
|
||||
|
||||
InputSettings::InputSettings() : settings(QSettings::UserScope) {
|
||||
mapping[0] = settings.value("input/mapping/Z", Qt::Key_Z).value<QKeySequence>();
|
||||
mapping[1] = settings.value("input/mapping/A", Qt::Key_X).value<QKeySequence>();
|
||||
mapping[2] = settings.value("input/mapping/B", Qt::Key_C).value<QKeySequence>();
|
||||
mapping[3] = settings.value("input/mapping/L", Qt::Key_A).value<QKeySequence>();
|
||||
mapping[4] = settings.value("input/mapping/R", Qt::Key_S).value<QKeySequence>();
|
||||
mapping[5] = settings.value("input/mapping/S", Qt::Key_Return).value<QKeySequence>();
|
||||
mapping[6] = settings.value("input/mapping/DU", Qt::Key_I).value<QKeySequence>();
|
||||
mapping[7] = settings.value("input/mapping/DD", Qt::Key_K).value<QKeySequence>();
|
||||
mapping[8] = settings.value("input/mapping/DL", Qt::Key_J).value<QKeySequence>();
|
||||
mapping[9] = settings.value("input/mapping/DR", Qt::Key_L).value<QKeySequence>();
|
||||
mapping[10] = settings.value("input/mapping/CU", Qt::Key_T).value<QKeySequence>();
|
||||
mapping[11] = settings.value("input/mapping/CD", Qt::Key_G).value<QKeySequence>();
|
||||
mapping[12] = settings.value("input/mapping/CL", Qt::Key_F).value<QKeySequence>();
|
||||
mapping[13] = settings.value("input/mapping/CR", Qt::Key_H).value<QKeySequence>();
|
||||
mapping[14] = settings.value("input/mapping/AU", Qt::Key_Up).value<QKeySequence>();
|
||||
mapping[15] = settings.value("input/mapping/AD", Qt::Key_Down).value<QKeySequence>();
|
||||
mapping[16] = settings.value("input/mapping/AL", Qt::Key_Left).value<QKeySequence>();
|
||||
mapping[17] = settings.value("input/mapping/AR", Qt::Key_Right).value<QKeySequence>();
|
||||
|
||||
form = new QFormLayout();
|
||||
|
||||
form->addRow("Z:", btnZ);
|
||||
form->addRow("A:", btnA);
|
||||
form->addRow("B:", btnB);
|
||||
form->addRow("L:", btnL);
|
||||
form->addRow("R:", btnR);
|
||||
form->addRow("Start:", btnS);
|
||||
form->addRow("D-pad Up:", btnDU);
|
||||
form->addRow("D-pad Down:", btnDD);
|
||||
form->addRow("D-pad Left:", btnDL);
|
||||
form->addRow("D-pad Right:", btnDR);
|
||||
form->addRow("C-up:", btnCU);
|
||||
form->addRow("C-down:", btnCD);
|
||||
form->addRow("C-left:", btnCL);
|
||||
form->addRow("C-right:", btnCR);
|
||||
form->addRow("Up:", btnAU);
|
||||
form->addRow("Down:", btnAD);
|
||||
form->addRow("Left:", btnAL);
|
||||
form->addRow("Right:", btnAR);
|
||||
|
||||
connect(btnZ, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[0] = btnZ->keySequence();
|
||||
settings.setValue("input/mapping/Z", mapping[0]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnA, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[1] = btnA->keySequence();
|
||||
settings.setValue("input/mapping/A", mapping[1]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnB, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[2] = btnB->keySequence();
|
||||
settings.setValue("input/mapping/B", mapping[2]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnL, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[3] = btnL->keySequence();
|
||||
settings.setValue("input/mapping/L", mapping[3]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnR, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[4] = btnR->keySequence();
|
||||
settings.setValue("input/mapping/R", mapping[4]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnS, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[5] = btnS->keySequence();
|
||||
settings.setValue("input/mapping/S", mapping[5]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnDU, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[6] = btnDU->keySequence();
|
||||
settings.setValue("input/mapping/DU", mapping[6]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnDD, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[7] = btnDD->keySequence();
|
||||
settings.setValue("input/mapping/DD", mapping[7]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnDL, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[8] = btnDL->keySequence();
|
||||
settings.setValue("input/mapping/DL", mapping[8]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnDR, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[9] = btnDR->keySequence();
|
||||
settings.setValue("input/mapping/DR", mapping[9]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnCU, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[10] = btnCU->keySequence();
|
||||
settings.setValue("input/mapping/CU", mapping[10]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnCD, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[11] = btnCD->keySequence();
|
||||
settings.setValue("input/mapping/CD", mapping[11]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnCL, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[12] = btnCL->keySequence();
|
||||
settings.setValue("input/mapping/CL", mapping[12]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnCR, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[13] = btnCR->keySequence();
|
||||
settings.setValue("input/mapping/CR", mapping[13]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnAU, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[14] = btnAU->keySequence();
|
||||
settings.setValue("input/mapping/AU", mapping[14]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnAD, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[15] = btnAD->keySequence();
|
||||
settings.setValue("input/mapping/AD", mapping[15]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnAL, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[16] = btnAL->keySequence();
|
||||
settings.setValue("input/mapping/AL", mapping[16]);
|
||||
settings.sync();
|
||||
});
|
||||
connect(btnAR, &QKeySequenceEdit::keySequenceChanged, this, [&] {
|
||||
mapping[17] = btnAR->keySequence();
|
||||
settings.setValue("input/mapping/AR", mapping[17]);
|
||||
settings.sync();
|
||||
});
|
||||
|
||||
v = new QVBoxLayout(this);
|
||||
v->addLayout(form);
|
||||
setLayout(v);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
#include <QFormLayout>
|
||||
#include <QKeySequenceEdit>
|
||||
#include <QLabel>
|
||||
#include <QSettings>
|
||||
#include <QList>
|
||||
|
||||
class InputSettings final : public QWidget {
|
||||
Q_OBJECT
|
||||
QSettings settings;
|
||||
QVBoxLayout *v;
|
||||
QFormLayout *form;
|
||||
QKeySequenceEdit *btnZ = new QKeySequenceEdit(Qt::Key_Z);
|
||||
QKeySequenceEdit *btnA = new QKeySequenceEdit(Qt::Key_X);
|
||||
QKeySequenceEdit *btnB = new QKeySequenceEdit(Qt::Key_C);
|
||||
QKeySequenceEdit *btnL = new QKeySequenceEdit(Qt::Key_A);
|
||||
QKeySequenceEdit *btnR = new QKeySequenceEdit(Qt::Key_S);
|
||||
QKeySequenceEdit *btnS = new QKeySequenceEdit(Qt::Key_Return);
|
||||
QKeySequenceEdit *btnDU = new QKeySequenceEdit(Qt::Key_T);
|
||||
QKeySequenceEdit *btnDD = new QKeySequenceEdit(Qt::Key_G);
|
||||
QKeySequenceEdit *btnDL = new QKeySequenceEdit(Qt::Key_F);
|
||||
QKeySequenceEdit *btnDR = new QKeySequenceEdit(Qt::Key_H);
|
||||
QKeySequenceEdit *btnCU = new QKeySequenceEdit(Qt::Key_I);
|
||||
QKeySequenceEdit *btnCD = new QKeySequenceEdit(Qt::Key_K);
|
||||
QKeySequenceEdit *btnCL = new QKeySequenceEdit(Qt::Key_J);
|
||||
QKeySequenceEdit *btnCR = new QKeySequenceEdit(Qt::Key_L);
|
||||
QKeySequenceEdit *btnAU = new QKeySequenceEdit(Qt::Key_Up);
|
||||
QKeySequenceEdit *btnAD = new QKeySequenceEdit(Qt::Key_Down);
|
||||
QKeySequenceEdit *btnAL = new QKeySequenceEdit(Qt::Key_Left);
|
||||
QKeySequenceEdit *btnAR = new QKeySequenceEdit(Qt::Key_Right);
|
||||
|
||||
public:
|
||||
QList<QKeySequence> mapping = {
|
||||
Qt::Key_Z, Qt::Key_X, Qt::Key_C, Qt::Key_A, Qt::Key_S, Qt::Key_Return,
|
||||
Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, Qt::Key_T, Qt::Key_G,
|
||||
Qt::Key_F, Qt::Key_H, Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right,
|
||||
};
|
||||
explicit InputSettings();
|
||||
};
|
||||
Reference in New Issue
Block a user