aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2020-03-26 16:50:40 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2020-06-23 17:44:03 +0200
commitd0ae3a312a03c118a1aa25a4c6c0352375d569fc (patch)
tree01df3e8ea22c8a1ecd969a6e9e6d7014c635da9f /src/quick/handlers
parentd5d6a56809032796444fe63c220a2e940ce237c0 (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.cpp2
-rw-r--r--src/quick/handlers/qquickpointerdevicehandler.cpp14
-rw-r--r--src/quick/handlers/qquickpointerdevicehandler_p.h12
-rw-r--r--src/quick/handlers/qquickpointerdevicehandler_p_p.h4
-rw-r--r--src/quick/handlers/qquickpointerhandler.cpp13
-rw-r--r--src/quick/handlers/qquickpointerhandler_p_p.h2
-rw-r--r--src/quick/handlers/qquicktaphandler.cpp2
-rw-r--r--src/quick/handlers/qquickwheelhandler.cpp4
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()) {