Qt: Allow rebinding keyboard controls (#779)

* Initial input UI draft

Co-Authored-By: Paris Oplopoios <parisoplop@gmail.com>

* More keybinding work

Co-Authored-By: Paris Oplopoios <parisoplop@gmail.com>

* Nit

Co-Authored-By: Paris Oplopoios <parisoplop@gmail.com>

* More nits

Co-Authored-By: Paris Oplopoios <parisoplop@gmail.com>

---------

Co-authored-by: Paris Oplopoios <parisoplop@gmail.com>
This commit is contained in:
wheremyfoodat
2025-07-18 04:08:08 +03:00
committed by GitHub
parent 3cae1bd256
commit 81f37e1699
14 changed files with 385 additions and 14 deletions

View File

@@ -0,0 +1,32 @@
#pragma once
#include <QDialog>
#include <QKeySequence>
#include <QMap>
#include <QPushButton>
#include "input_mappings.hpp"
class InputWindow : public QDialog {
Q_OBJECT
public:
InputWindow(QWidget* parent = nullptr);
void loadFromMappings(const InputMappings& mappings);
void applyToMappings(InputMappings& mappings) const;
signals:
void mappingsChanged();
protected:
bool eventFilter(QObject* obj, QEvent* event) override;
private:
QMap<QString, QPushButton*> buttonMap;
QMap<QString, QKeySequence> keyMappings;
QString waitingForAction;
void startKeyCapture(const QString& action);
};