summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_hotkeys.h
diff options
context:
space:
mode:
authorAdityarup Laha <30696515+adityaruplaha@users.noreply.github.com>2019-02-16 16:19:29 +0100
committerfearlessTobi <thm.frey@gmail.com>2019-03-16 03:55:57 +0100
commit57a4a2ae0fc35906723ffc9f788f3cf7dd9c4ba5 (patch)
tree3ad8f3c6e2b2c26d10055e14be3197a932a48862 /src/yuzu/configuration/configure_hotkeys.h
parent06ac6460d31036dddf7e4ae12355391035cc30ca (diff)
yuzu: Make hotkeys configurable via the GUI
* Adds a new Hotkeys tab in the Controls group. * Double-click a Hotkey to rebind it.
Diffstat (limited to 'src/yuzu/configuration/configure_hotkeys.h')
-rw-r--r--src/yuzu/configuration/configure_hotkeys.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/yuzu/configuration/configure_hotkeys.h b/src/yuzu/configuration/configure_hotkeys.h
new file mode 100644
index 000000000..cd203aad6
--- /dev/null
+++ b/src/yuzu/configuration/configure_hotkeys.h
@@ -0,0 +1,48 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <QWidget>
+#include "core/settings.h"
+
+namespace Ui {
+class ConfigureHotkeys;
+}
+
+class HotkeyRegistry;
+class QStandardItemModel;
+
+class ConfigureHotkeys : public QWidget {
+ Q_OBJECT
+
+public:
+ explicit ConfigureHotkeys(QWidget* parent = nullptr);
+ ~ConfigureHotkeys() override;
+
+ void applyConfiguration(HotkeyRegistry& registry);
+ void retranslateUi();
+
+ void EmitHotkeysChanged();
+
+ /**
+ * Populates the hotkey list widget using data from the provided registry.
+ * Called everytime the Configure dialog is opened.
+ * @param registry The HotkeyRegistry whose data is used to populate the list.
+ */
+ void Populate(const HotkeyRegistry& registry);
+
+signals:
+ void HotkeysChanged(QList<QKeySequence> new_key_list);
+
+private:
+ void Configure(QModelIndex index);
+ bool IsUsedKey(QKeySequence key_sequence);
+ QList<QKeySequence> GetUsedKeyList() const;
+
+ std::unique_ptr<Ui::ConfigureHotkeys> ui;
+
+ QStandardItemModel* model;
+};