diff options
Diffstat (limited to 'filter.cpp')
| -rw-r--r-- | filter.cpp | 30 |
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); +} |
