aboutsummaryrefslogtreecommitdiff
path: root/filter.cpp
diff options
context:
space:
mode:
authormarcin <z.krzysztoff7@gmail.com>2014-07-13 14:27:50 +0200
committermarcin <z.krzysztoff7@gmail.com>2014-07-13 14:27:50 +0200
commit49bb4516f2b32f926f33a7600657222619b73381 (patch)
tree38532ce5daf4676668a54a1ade0e0975832932e3 /filter.cpp
parent5085aa3a64bae93de50f98a53f28d95c27496a1a (diff)
downloadmonzero-gui-49bb4516f2b32f926f33a7600657222619b73381.tar.gz
monzero-gui-49bb4516f2b32f926f33a7600657222619b73381.tar.xz
monzero-gui-49bb4516f2b32f926f33a7600657222619b73381.zip
shortcuts fix + ctrl+tab/ctrl+shift+tab functionality + heperlinks fix
Diffstat (limited to 'filter.cpp')
-rw-r--r--filter.cpp33
1 files changed, 22 insertions, 11 deletions
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<QKeyEvent*>(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<QObject*>(obj), sks);
} break;
case QEvent::KeyRelease: {
QKeyEvent *ke = static_cast<QKeyEvent*>(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<QObject*>(obj), sks);
} break;
case QEvent::MouseButtonPress: {
QMouseEvent *me = static_cast<QMouseEvent*>(ev);
emit mousePressed(QVariant::fromValue<QObject*>(obj), me->x(), me->y());
- m_mousePressed = true;
} break;
case QEvent::MouseButtonRelease: {
QMouseEvent *me = static_cast<QMouseEvent*>(ev);
emit mouseReleased(QVariant::fromValue<QObject*>(obj), me->x(), me->y());
- m_mousePressed = false;
} break;
default: break;
}