summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-02-24 11:43:34 +0100
committerStanislaw Halik <sthalik@misaki.pl>2017-02-24 11:43:34 +0100
commit4d6e3bad7e38a80375c4888cf630aa71960d2899 (patch)
treeebd0d2185d9479586a944cba758c5d8214e54158
parent670e8774705d160b67c0ad8c938d2525316e125b (diff)
gui: simplify keyboard listener dialog
It's now generated from .ui QDialog, not a manually created QDialog from QLabel in .ui.
-rw-r--r--gui/keyboard.h6
-rw-r--r--gui/keyboard_listener.ui35
-rw-r--r--gui/options-dialog.cpp23
3 files changed, 23 insertions, 41 deletions
diff --git a/gui/keyboard.h b/gui/keyboard.h
index d35fe675..58d4e674 100644
--- a/gui/keyboard.h
+++ b/gui/keyboard.h
@@ -4,11 +4,11 @@
#include "logic/win32-shortcuts.h"
#include "dinput/keybinding-worker.hpp"
#endif
-#include <QLabel>
+#include <QDialog>
#include <QKeyEvent>
#include <QDebug>
-class KeyboardListener : public QLabel
+class KeyboardListener : public QDialog
{
Q_OBJECT
Ui_keyboard_listener ui;
@@ -16,7 +16,7 @@ class KeyboardListener : public QLabel
KeybindingWorker::Token token;
#endif
public:
- KeyboardListener(QWidget* parent = nullptr) : QLabel(parent)
+ KeyboardListener(QWidget* parent = nullptr) : QDialog(parent)
#ifdef _WIN32
, token([&](const Key& k) {
if(k.guid != "")
diff --git a/gui/keyboard_listener.ui b/gui/keyboard_listener.ui
index b6977df0..f7f29468 100644
--- a/gui/keyboard_listener.ui
+++ b/gui/keyboard_listener.ui
@@ -1,36 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>keyboard_listener</class>
- <widget class="QLabel" name="keyboard_listener">
- <property name="windowModality">
- <enum>Qt::ApplicationModal</enum>
- </property>
+ <widget class="QDialog" name="keyboard_listener">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>224</width>
- <height>33</height>
+ <width>587</width>
+ <height>273</height>
</rect>
</property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
<property name="windowTitle">
- <string>Bind a shortcut</string>
- </property>
- <property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Press a key or close this window to remove the keybinding.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
- </property>
- <property name="textFormat">
- <enum>Qt::RichText</enum>
- </property>
- <property name="margin">
- <number>10</number>
+ <string>Dialog</string>
</property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Press a key or close this window to remove the keybinding.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
<resources/>
<connections/>
diff --git a/gui/options-dialog.cpp b/gui/options-dialog.cpp
index 98953086..b1dfc472 100644
--- a/gui/options-dialog.cpp
+++ b/gui/options-dialog.cpp
@@ -150,31 +150,22 @@ void OptionsDialog::bind_key(key_opts& kopts, QLabel* label)
kopts.button = -1;
kopts.guid = "";
kopts.keycode = "";
- auto d = new QDialog(this, Qt::MSWindowsFixedSizeDialogHint);
- auto l = new QHBoxLayout;
- l->setMargin(0);
auto k = new KeyboardListener;
- l->addWidget(k);
- d->setLayout(l);
- d->setFixedSize(QSize(500, 300));
- d->setWindowModality(Qt::ApplicationModal);
-
- d->deleteLater();
- l->deleteLater();
+ k->setWindowModality(Qt::ApplicationModal);
k->deleteLater();
connect(k,
&KeyboardListener::key_pressed,
- d,
+ this,
[&](QKeySequence s)
{
kopts.keycode = s.toString(QKeySequence::PortableText);
kopts.guid = "";
kopts.button = -1;
- d->close();
+ k->close();
});
connect(k, &KeyboardListener::joystick_button_pressed,
- d,
+ this,
[&](QString guid, int idx, bool held)
{
if (!held)
@@ -182,12 +173,12 @@ void OptionsDialog::bind_key(key_opts& kopts, QLabel* label)
kopts.guid = guid;
kopts.keycode = "";
kopts.button = idx;
- d->close();
+ k->close();
}
});
- connect(main.b.get(), &options::detail::bundle::reloading, d, &QDialog::close);
+ connect(main.b.get(), &options::detail::bundle::reloading, k, &QDialog::close);
pause_keybindings(true);
- d->exec();
+ k->exec();
pause_keybindings(false);
label->setText(kopts_to_string(kopts));
}