diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-03-26 16:50:40 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-06-23 17:44:03 +0200 |
commit | d0ae3a312a03c118a1aa25a4c6c0352375d569fc (patch) | |
tree | 01df3e8ea22c8a1ecd969a6e9e6d7014c635da9f /src/quick/handlers | |
parent | d5d6a56809032796444fe63c220a2e940ce237c0 (diff) |
Remove QQuickPointerDevice in favor of QPointingDevice
...and generally deal with changes immediately required after adding
QInputDevice and QPointingDevice.
Also fixed a few usages of deprecated accessors that weren't taken
care of in 212c2bffbb041aee0e3c9a7f0551ef151ed2d3ad.
Task-number: QTBUG-46412
Task-number: QTBUG-69433
Task-number: QTBUG-72167
Change-Id: I93a2643162878afa216556f10808fd92e0b20071
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/handlers')
-rw-r--r-- | src/quick/handlers/qquickhoverhandler.cpp | 2 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerdevicehandler.cpp | 14 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerdevicehandler_p.h | 12 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerdevicehandler_p_p.h | 4 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerhandler.cpp | 13 | ||||
-rw-r--r-- | src/quick/handlers/qquickpointerhandler_p_p.h | 2 | ||||
-rw-r--r-- | src/quick/handlers/qquicktaphandler.cpp | 2 | ||||
-rw-r--r-- | src/quick/handlers/qquickwheelhandler.cpp | 4 |
8 files changed, 33 insertions, 20 deletions
diff --git a/src/quick/handlers/qquickhoverhandler.cpp b/src/quick/handlers/qquickhoverhandler.cpp index b12d85784a..76e5bc0605 100644 --- a/src/quick/handlers/qquickhoverhandler.cpp +++ b/src/quick/handlers/qquickhoverhandler.cpp @@ -116,7 +116,7 @@ void QQuickHoverHandler::handleEventPoint(QQuickEventPoint *point) { bool hovered = true; if (point->state() == QQuickEventPoint::Released && - point->pointerEvent()->device()->pointerType() == QQuickPointerDevice::Finger) + point->pointerEvent()->device()->pointerType() == QPointingDevice::PointerType::Finger) hovered = false; else if (point->pointerEvent()->asPointerTabletEvent()) m_hoveredTablet = true; diff --git a/src/quick/handlers/qquickpointerdevicehandler.cpp b/src/quick/handlers/qquickpointerdevicehandler.cpp index 90f31bf9fd..592abb6660 100644 --- a/src/quick/handlers/qquickpointerdevicehandler.cpp +++ b/src/quick/handlers/qquickpointerdevicehandler.cpp @@ -67,13 +67,13 @@ QQuickPointerDeviceHandler::QQuickPointerDeviceHandler(QQuickPointerDeviceHandle { } -QQuickPointerDevice::DeviceTypes QQuickPointerDeviceHandler::acceptedDevices() const +QPointingDevice::DeviceTypes QQuickPointerDeviceHandler::acceptedDevices() const { Q_D(const QQuickPointerDeviceHandler); return d->acceptedDevices; } -QQuickPointerDevice::PointerTypes QQuickPointerDeviceHandler::acceptedPointerTypes() const +QPointingDevice::PointerTypes QQuickPointerDeviceHandler::acceptedPointerTypes() const { Q_D(const QQuickPointerDeviceHandler); return d->acceptedPointerTypes; @@ -156,7 +156,7 @@ Qt::KeyboardModifiers QQuickPointerDeviceHandler::acceptedModifiers() const } \endqml */ -void QQuickPointerDeviceHandler::setAcceptedDevices(QQuickPointerDevice::DeviceTypes acceptedDevices) +void QQuickPointerDeviceHandler::setAcceptedDevices(QPointingDevice::DeviceTypes acceptedDevices) { Q_D(QQuickPointerDeviceHandler); if (d->acceptedDevices == acceptedDevices) @@ -195,7 +195,7 @@ void QQuickPointerDeviceHandler::setAcceptedDevices(QQuickPointerDevice::DeviceT } \endqml */ -void QQuickPointerDeviceHandler::setAcceptedPointerTypes(QQuickPointerDevice::PointerTypes acceptedPointerTypes) +void QQuickPointerDeviceHandler::setAcceptedPointerTypes(QPointingDevice::PointerTypes acceptedPointerTypes) { Q_D(QQuickPointerDeviceHandler); if (d->acceptedPointerTypes == acceptedPointerTypes) @@ -299,14 +299,14 @@ bool QQuickPointerDeviceHandler::wantsPointerEvent(QQuickPointerEvent *event) << "checking device type" << d->acceptedDevices << "pointer type" << d->acceptedPointerTypes << "modifiers" << d->acceptedModifiers; - if ((event->device()->type() & d->acceptedDevices) == 0) + if (!d->acceptedDevices.testFlag(event->device()->type())) return false; - if ((event->device()->pointerType() & d->acceptedPointerTypes) == 0) + if (!d->acceptedPointerTypes.testFlag(event->device()->pointerType())) return false; if (d->acceptedModifiers != Qt::KeyboardModifierMask && event->modifiers() != d->acceptedModifiers) return false; // HoverHandler sets acceptedButtons to Qt::NoButton to indicate that button state is irrelevant. - if (event->device()->pointerType() != QQuickPointerDevice::Finger && acceptedButtons() != Qt::NoButton && + if (event->device()->pointerType() != QPointingDevice::PointerType::Finger && acceptedButtons() != Qt::NoButton && (event->buttons() & acceptedButtons()) == 0 && (event->button() & acceptedButtons()) == 0 && !event->asPointerScrollEvent()) return false; diff --git a/src/quick/handlers/qquickpointerdevicehandler_p.h b/src/quick/handlers/qquickpointerdevicehandler_p.h index bb15142824..28c88db2b7 100644 --- a/src/quick/handlers/qquickpointerdevicehandler_p.h +++ b/src/quick/handlers/qquickpointerdevicehandler_p.h @@ -59,22 +59,22 @@ class QQuickPointerDeviceHandlerPrivate; class Q_QUICK_PRIVATE_EXPORT QQuickPointerDeviceHandler : public QQuickPointerHandler { Q_OBJECT - Q_PROPERTY(QQuickPointerDevice::DeviceTypes acceptedDevices READ acceptedDevices WRITE setAcceptedDevices NOTIFY acceptedDevicesChanged) - Q_PROPERTY(QQuickPointerDevice::PointerTypes acceptedPointerTypes READ acceptedPointerTypes WRITE setAcceptedPointerTypes NOTIFY acceptedPointerTypesChanged) + Q_PROPERTY(QPointingDevice::DeviceTypes acceptedDevices READ acceptedDevices WRITE setAcceptedDevices NOTIFY acceptedDevicesChanged) + Q_PROPERTY(QPointingDevice::PointerTypes acceptedPointerTypes READ acceptedPointerTypes WRITE setAcceptedPointerTypes NOTIFY acceptedPointerTypesChanged) Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged) Q_PROPERTY(Qt::KeyboardModifiers acceptedModifiers READ acceptedModifiers WRITE setAcceptedModifiers NOTIFY acceptedModifiersChanged) public: explicit QQuickPointerDeviceHandler(QQuickItem *parent = nullptr); - QQuickPointerDevice::DeviceTypes acceptedDevices() const; - QQuickPointerDevice::PointerTypes acceptedPointerTypes() const; + QPointingDevice::DeviceTypes acceptedDevices() const; + QPointingDevice::PointerTypes acceptedPointerTypes() const; Qt::MouseButtons acceptedButtons() const; Qt::KeyboardModifiers acceptedModifiers() const; public Q_SLOTS: - void setAcceptedDevices(QQuickPointerDevice::DeviceTypes acceptedDevices); - void setAcceptedPointerTypes(QQuickPointerDevice::PointerTypes acceptedPointerTypes); + void setAcceptedDevices(QPointingDevice::DeviceTypes acceptedDevices); + void setAcceptedPointerTypes(QPointingDevice::PointerTypes acceptedPointerTypes); void setAcceptedButtons(Qt::MouseButtons buttons); void setAcceptedModifiers(Qt::KeyboardModifiers acceptedModifiers); diff --git a/src/quick/handlers/qquickpointerdevicehandler_p_p.h b/src/quick/handlers/qquickpointerdevicehandler_p_p.h index 03272d9f69..a7cc951e98 100644 --- a/src/quick/handlers/qquickpointerdevicehandler_p_p.h +++ b/src/quick/handlers/qquickpointerdevicehandler_p_p.h @@ -64,8 +64,8 @@ public: static QQuickPointerDeviceHandlerPrivate* get(QQuickPointerDeviceHandler *q) { return q->d_func(); } static const QQuickPointerDeviceHandlerPrivate* get(const QQuickPointerDeviceHandler *q) { return q->d_func(); } - QQuickPointerDevice::DeviceTypes acceptedDevices = QQuickPointerDevice::AllDevices; - QQuickPointerDevice::PointerTypes acceptedPointerTypes = QQuickPointerDevice::AllPointerTypes; + QPointingDevice::DeviceTypes acceptedDevices = QPointingDevice::DeviceType::AllDevices; + QPointingDevice::PointerTypes acceptedPointerTypes = QPointingDevice::PointerType::AllPointerTypes; Qt::MouseButtons acceptedButtons = Qt::LeftButton; Qt::KeyboardModifiers acceptedModifiers = Qt::KeyboardModifierMask; }; diff --git a/src/quick/handlers/qquickpointerhandler.cpp b/src/quick/handlers/qquickpointerhandler.cpp index adb753e000..2a02511402 100644 --- a/src/quick/handlers/qquickpointerhandler.cpp +++ b/src/quick/handlers/qquickpointerhandler.cpp @@ -40,6 +40,7 @@ #include "qquickpointerhandler_p.h" #include "qquickpointerhandler_p_p.h" #include <QtQuick/private/qquickitem_p.h> +#include <QtGui/private/qinputdevice_p.h> QT_BEGIN_NAMESPACE @@ -598,7 +599,7 @@ void QQuickPointerHandler::handlePointerEvent(QQuickPointerEvent *event) pt->cancelExclusiveGrab(); } } - event->device()->eventDeliveryTargets().append(this); + QQuickPointerHandlerPrivate::deviceDeliveryTargets(event->device()).append(this); } bool QQuickPointerHandler::wantsPointerEvent(QQuickPointerEvent *event) @@ -715,4 +716,14 @@ bool QQuickPointerHandlerPrivate::dragOverThreshold(const QQuickEventPoint *poin dragOverThreshold(delta.y(), Qt::YAxis, point)); } +QVector<QObject *> &QQuickPointerHandlerPrivate::deviceDeliveryTargets(const QInputDevice *device) +{ + QInputDevicePrivate *devPriv = QInputDevicePrivate::get(const_cast<QInputDevice *>(device)); + if (devPriv->qqExtra) + return *static_cast<QVector<QObject *>*>(devPriv->qqExtra); + auto targets = new QVector<QObject *>; + devPriv->qqExtra = targets; + return *targets; +} + QT_END_NAMESPACE diff --git a/src/quick/handlers/qquickpointerhandler_p_p.h b/src/quick/handlers/qquickpointerhandler_p_p.h index db053fb6b4..03b36c6dae 100644 --- a/src/quick/handlers/qquickpointerhandler_p_p.h +++ b/src/quick/handlers/qquickpointerhandler_p_p.h @@ -74,6 +74,8 @@ public: bool dragOverThreshold(QVector2D delta) const; bool dragOverThreshold(const QQuickEventPoint *point) const; + static QVector<QObject *> &deviceDeliveryTargets(const QInputDevice *device); + QQuickPointerEvent *currentEvent = nullptr; QQuickItem *target = nullptr; qreal m_margin = 0; diff --git a/src/quick/handlers/qquicktaphandler.cpp b/src/quick/handlers/qquicktaphandler.cpp index f3674d6fa9..2fabd39709 100644 --- a/src/quick/handlers/qquicktaphandler.cpp +++ b/src/quick/handlers/qquicktaphandler.cpp @@ -280,7 +280,7 @@ void QQuickTapHandler::setPressed(bool press, bool cancel, QQuickEventPoint *poi qreal ts = point->pointerEvent()->timestamp() / 1000.0; if (ts - m_lastTapTimestamp < m_multiTapInterval && QVector2D(point->scenePosition() - m_lastTapPos).lengthSquared() < - (point->pointerEvent()->device()->type() == QQuickPointerDevice::Mouse ? + (point->pointerEvent()->device()->type() == QInputDevice::DeviceType::Mouse ? m_mouseMultiClickDistanceSquared : m_touchMultiTapDistanceSquared)) ++m_tapCount; else diff --git a/src/quick/handlers/qquickwheelhandler.cpp b/src/quick/handlers/qquickwheelhandler.cpp index 16f38af962..64bf5bc540 100644 --- a/src/quick/handlers/qquickwheelhandler.cpp +++ b/src/quick/handlers/qquickwheelhandler.cpp @@ -95,7 +95,7 @@ Q_LOGGING_CATEGORY(lcWheelHandler, "qt.quick.handler.wheel") QQuickWheelHandler::QQuickWheelHandler(QQuickItem *parent) : QQuickSinglePointHandler(*(new QQuickWheelHandlerPrivate), parent) { - setAcceptedDevices(QQuickPointerDevice::Mouse); + setAcceptedDevices(QInputDevice::DeviceType::Mouse); } /*! @@ -367,7 +367,7 @@ bool QQuickWheelHandler::wantsPointerEvent(QQuickPointerEvent *event) QQuickPointerScrollEvent *scroll = event->asPointerScrollEvent(); if (!scroll) return false; - if (!acceptedDevices().testFlag(QQuickPointerDevice::DeviceType::TouchPad) + if (!acceptedDevices().testFlag(QPointingDevice::DeviceType::TouchPad) && scroll->synthSource() != Qt::MouseEventNotSynthesized) return false; if (!active()) { |