aboutsummaryrefslogtreecommitdiff
path: root/filter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filter.cpp')
-rw-r--r--filter.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/filter.cpp b/filter.cpp
new file mode 100644
index 00000000..cf41f648
--- /dev/null
+++ b/filter.cpp
@@ -0,0 +1,30 @@
+#include "filter.h"
+#include <QKeyEvent>
+
+filter::filter(QObject *parent) :
+ QObject(parent)
+{
+ m_ctrlPressed = true;
+}
+
+bool filter::eventFilter(QObject *obj, QEvent *ev) {
+ switch(ev->type()) {
+ case QEvent::KeyPress: {
+ QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
+ if(ke->key() == Qt::Key_Control) {
+ emit ctrlPressed();
+ m_ctrlPressed = true;
+ }
+ } break;
+ case QEvent::KeyRelease: {
+ QKeyEvent *ke = static_cast<QKeyEvent*>(ev);
+ if(ke->key() == Qt::Key_Control) {
+ emit ctrlReleased();
+ m_ctrlPressed = false;
+ }
+ } break;
+ default: break;
+ }
+
+ return QObject::eventFilter(obj, ev);
+}