diff --git a/REUSE.toml b/REUSE.toml
index dc5149e8f..3bc09e328 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -35,6 +35,7 @@ path = [
"src/images/folder_icon.png",
"src/images/github.png",
"src/images/grid_icon.png",
+ "src/images/keyboard_icon.png",
"src/images/iconsize_icon.png",
"src/images/ko-fi.png",
"src/images/list_icon.png",
diff --git a/src/images/keyboard_icon.png b/src/images/keyboard_icon.png
new file mode 100644
index 000000000..696c1f9da
Binary files /dev/null and b/src/images/keyboard_icon.png differ
diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp
index 556dd0456..5cbce1884 100644
--- a/src/qt_gui/main_window.cpp
+++ b/src/qt_gui/main_window.cpp
@@ -142,6 +142,7 @@ void MainWindow::AddUiWidgets() {
ui->toolBar->addWidget(ui->refreshButton);
ui->toolBar->addWidget(ui->settingsButton);
ui->toolBar->addWidget(ui->controllerButton);
+ ui->toolBar->addWidget(ui->keyboardButton);
QFrame* line = new QFrame(this);
line->setFrameShape(QFrame::StyledPanel);
line->setFrameShadow(QFrame::Sunken);
@@ -327,6 +328,11 @@ void MainWindow::CreateConnects() {
configWindow->exec();
});
+ connect(ui->keyboardButton, &QPushButton::clicked, this, [this]() {
+ auto kbmWindow = new EditorDialog(this);
+ kbmWindow->exec();
+ });
+
#ifdef ENABLE_UPDATER
connect(ui->updaterAct, &QAction::triggered, this, [this]() {
auto checkUpdate = new CheckUpdate(true);
@@ -1106,6 +1112,7 @@ void MainWindow::SetUiIcons(bool isWhite) {
ui->refreshButton->setIcon(RecolorIcon(ui->refreshButton->icon(), isWhite));
ui->settingsButton->setIcon(RecolorIcon(ui->settingsButton->icon(), isWhite));
ui->controllerButton->setIcon(RecolorIcon(ui->controllerButton->icon(), isWhite));
+ ui->keyboardButton->setIcon(RecolorIcon(ui->keyboardButton->icon(), isWhite));
ui->refreshGameListAct->setIcon(RecolorIcon(ui->refreshGameListAct->icon(), isWhite));
ui->menuGame_List_Mode->setIcon(RecolorIcon(ui->menuGame_List_Mode->icon(), isWhite));
ui->pkgViewerAct->setIcon(RecolorIcon(ui->pkgViewerAct->icon(), isWhite));
diff --git a/src/qt_gui/main_window_ui.h b/src/qt_gui/main_window_ui.h
index 7de166121..ee582b929 100644
--- a/src/qt_gui/main_window_ui.h
+++ b/src/qt_gui/main_window_ui.h
@@ -47,6 +47,7 @@ public:
QPushButton* refreshButton;
QPushButton* settingsButton;
QPushButton* controllerButton;
+ QPushButton* keyboardButton;
QWidget* sizeSliderContainer;
QHBoxLayout* sizeSliderContainer_layout;
@@ -210,6 +211,10 @@ public:
controllerButton->setFlat(true);
controllerButton->setIcon(QIcon(":images/controller_icon.png"));
controllerButton->setIconSize(QSize(40, 40));
+ keyboardButton = new QPushButton(centralWidget);
+ keyboardButton->setFlat(true);
+ keyboardButton->setIcon(QIcon(":images/keyboard_icon.png"));
+ keyboardButton->setIconSize(QSize(40, 40));
sizeSliderContainer = new QWidget(centralWidget);
sizeSliderContainer->setObjectName("sizeSliderContainer");
diff --git a/src/shadps4.qrc b/src/shadps4.qrc
index 40aeb9fb9..14b50f7a5 100644
--- a/src/shadps4.qrc
+++ b/src/shadps4.qrc
@@ -31,5 +31,6 @@
images/youtube.png
images/website.png
images/ps4_controller.png
+ images/keyboard_icon.png