diff --git a/containmentactions.cpp b/containmentactions.cpp index dd9cbc3a7..e48780b81 100644 --- a/containmentactions.cpp +++ b/containmentactions.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -227,12 +228,11 @@ QString ContainmentActions::eventToString(QEvent *event) QString trigger; Qt::KeyboardModifiers modifiers; - //strict typing sucks sometimes. switch (event->type()) { case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: { - QMouseEvent *e = dynamic_cast(event); + QMouseEvent *e = static_cast(event); int m = QObject::staticQtMetaObject.indexOfEnumerator("MouseButtons"); QMetaEnum mouse = QObject::staticQtMetaObject.enumerator(m); trigger += mouse.valueToKey(e->button()); @@ -241,8 +241,9 @@ QString ContainmentActions::eventToString(QEvent *event) } case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseRelease: + case QEvent::GraphicsSceneMouseDoubleClick: { - QGraphicsSceneMouseEvent *e = dynamic_cast(event); + QGraphicsSceneMouseEvent *e = static_cast(event); int m = QObject::staticQtMetaObject.indexOfEnumerator("MouseButtons"); QMetaEnum mouse = QObject::staticQtMetaObject.enumerator(m); trigger += mouse.valueToKey(e->button()); @@ -251,7 +252,7 @@ QString ContainmentActions::eventToString(QEvent *event) } case QEvent::Wheel: { - QWheelEvent *e = dynamic_cast(event); + QWheelEvent *e = static_cast(event); int o = QObject::staticQtMetaObject.indexOfEnumerator("Orientations"); QMetaEnum orient = QObject::staticQtMetaObject.enumerator(o); trigger = "wheel:"; @@ -261,7 +262,7 @@ QString ContainmentActions::eventToString(QEvent *event) } case QEvent::GraphicsSceneWheel: { - QGraphicsSceneWheelEvent *e = dynamic_cast(event); + QGraphicsSceneWheelEvent *e = static_cast(event); int o = QObject::staticQtMetaObject.indexOfEnumerator("Orientations"); QMetaEnum orient = QObject::staticQtMetaObject.enumerator(o); trigger = "wheel:"; @@ -269,6 +270,15 @@ QString ContainmentActions::eventToString(QEvent *event) modifiers = e->modifiers(); break; } + case QEvent::GraphicsSceneContextMenu: + case QEvent::ContextMenu: + { + int m = QObject::staticQtMetaObject.indexOfEnumerator("MouseButtons"); + QMetaEnum mouse = QObject::staticQtMetaObject.enumerator(m); + trigger = mouse.valueToKey(Qt::RightButton); + modifiers = Qt::NoModifier; + break; + } default: return QString(); }