From 0c37453d5f6e6dd6fbba45818f171708d1b13a27 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sun, 25 Oct 2020 15:55:02 +0100 Subject: [PATCH] workaround for Qt 5/6 QMouseEvent incompatabilities --- src/controls/QskEvent.cpp | 18 ++++++++++++++++++ src/controls/QskEvent.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/src/controls/QskEvent.cpp b/src/controls/QskEvent.cpp index 579e8e03..a5f2756a 100644 --- a/src/controls/QskEvent.cpp +++ b/src/controls/QskEvent.cpp @@ -45,6 +45,24 @@ int qskFocusChainIncrement( const QEvent* event ) return 0; } +QPointF qskMousePosition( const QMouseEvent* event ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) + return event->position(); +#else + return event->localPos(); +#endif +} + +QPointF qskMouseScenePosition( const QMouseEvent* event ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) + return event->scenePosition(); +#else + return event->windowPos(); +#endif +} + QskEvent::QskEvent( QskEvent::Type type ) : QEvent( static_cast< QEvent::Type >( type ) ) { diff --git a/src/controls/QskEvent.h b/src/controls/QskEvent.h index 12c298d9..0c3b4cb2 100644 --- a/src/controls/QskEvent.h +++ b/src/controls/QskEvent.h @@ -15,6 +15,7 @@ class QskGesture; class QskPopup; class QQuickWindow; class QQuickItem; +class QMouseEvent; class QSK_EXPORT QskEvent : public QEvent { @@ -119,4 +120,8 @@ class QSK_EXPORT QskAnimatorEvent : public QskEvent QSK_EXPORT int qskFocusChainIncrement( const QEvent* ); +// some helper to work around Qt version incompatibilities +QSK_EXPORT QPointF qskMouseScenePosition( const QMouseEvent* ); +QSK_EXPORT QPointF qskMousePosition( const QMouseEvent* ); + #endif