From 49bb4516f2b32f926f33a7600657222619b73381 Mon Sep 17 00:00:00 2001 From: marcin Date: Sun, 13 Jul 2014 14:27:50 +0200 Subject: shortcuts fix + ctrl+tab/ctrl+shift+tab functionality + heperlinks fix --- filter.cpp | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'filter.cpp') diff --git a/filter.cpp b/filter.cpp index 3e838ef6..df0b9376 100644 --- a/filter.cpp +++ b/filter.cpp @@ -5,38 +5,49 @@ filter::filter(QObject *parent) : QObject(parent) { - m_altPressed = true; + m_tabPressed = false; } bool filter::eventFilter(QObject *obj, QEvent *ev) { switch(ev->type()) { case QEvent::KeyPress: { QKeyEvent *ke = static_cast(ev); - if(ke->key() == Qt::Key_Alt) { - emit altPressed(); - m_altPressed = true; + if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) { + if(m_tabPressed) + break; + else m_tabPressed = true; + } + + QString sks; + if(ke->key() == Qt::Key_Control) { + sks = "Ctrl"; } else { QKeySequence ks(ke->modifiers() + ke->key()); - QString sks = ks.toString(); - emit sequencePressed(sks); + sks = ks.toString(); } + emit sequencePressed(QVariant::fromValue(obj), sks); } break; case QEvent::KeyRelease: { QKeyEvent *ke = static_cast(ev); - if(ke->key() == Qt::Key_Alt) { - emit altReleased(); - m_altPressed = false; + if(ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) + m_tabPressed = false; + + QString sks; + if(ke->key() == Qt::Key_Control) { + sks = "Ctrl"; + } else { + QKeySequence ks(ke->modifiers() + ke->key()); + sks = ks.toString(); } + emit sequenceReleased(QVariant::fromValue(obj), sks); } break; case QEvent::MouseButtonPress: { QMouseEvent *me = static_cast(ev); emit mousePressed(QVariant::fromValue(obj), me->x(), me->y()); - m_mousePressed = true; } break; case QEvent::MouseButtonRelease: { QMouseEvent *me = static_cast(ev); emit mouseReleased(QVariant::fromValue(obj), me->x(), me->y()); - m_mousePressed = false; } break; default: break; } -- cgit v1.2.3