summaryrefslogtreecommitdiff
path: root/plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp')
-rw-r--r--plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp b/plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp
new file mode 100644
index 0000000..a48e61f
--- /dev/null
+++ b/plugins-unmaintained/PluginLoader/keybinding/OptionsWidget.cpp
@@ -0,0 +1,55 @@
+#include "OptionsWidget.h"
+#include "KeyBind.h"
+#include "ui_OptionsWidget.h"
+
+#include <QKeyEvent>
+
+OptionsWidget::OptionsWidget(QWidget *parent) :
+ QWidget(parent),
+ modifier(QList<int>() << Qt::Key_Control << Qt::Key_Shift << Qt::Key_Super_R << Qt::Key_Super_L << Qt::Key_Meta << Qt::Key_Alt << Qt::Key_AltGr),
+ ui(new Ui::OptionsWidget)
+{
+ ui->setupUi(this);
+
+ keyBind=new KeyBind(this);
+ ui->vboxLayout->addWidget(keyBind);
+ connect(keyBind,&KeyBind::newKey,this,&OptionsWidget::newKeyBind);
+}
+
+OptionsWidget::~OptionsWidget()
+{
+ delete ui;
+}
+
+void OptionsWidget::retranslate()
+{
+ ui->retranslateUi(this);
+}
+
+void OptionsWidget::setKeyBind(const QKeySequence &keySequence)
+{
+ keyBind->setText(keySequence.toString());
+}
+
+void OptionsWidget::newKey(QKeyEvent * event)
+{
+ int keyInt = event->key();
+ if(!modifier.contains(keyInt))
+ {
+ const Qt::KeyboardModifiers &modifiers = event->modifiers();
+ if(modifiers & Qt::ShiftModifier)
+ keyInt += Qt::SHIFT;
+ if(modifiers & Qt::ControlModifier)
+ keyInt += Qt::CTRL;
+ if(modifiers & Qt::AltModifier)
+ keyInt += Qt::ALT;
+ if(modifiers & Qt::MetaModifier)
+ keyInt += Qt::META;
+
+ const QKeySequence &keySeq = QKeySequence(keyInt);
+ keyBind->setText(keySeq.toString());
+
+ sendKeyBind(keySeq);
+ }
+}
+