aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@qt.io>2017-02-22 14:19:12 +0100
committerJan Arve Sæther <jan-arve.saether@qt.io>2017-02-23 12:29:10 +0000
commite53510944169ac9f6753e0d14e1b24a24ff7bd9a (patch)
tree117b20c0045b0fcf4a0dd2f744068e75b607731d /src/quick
parentac61ca1a2e18bd472d36fdad730a797a913fe347 (diff)
API: Move acceptedButtons to QQuickPointerSingleHandler
Change-Id: I8cb393986e587e69d550ec03f691258c79d9237a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/handlers/qquickpointerdevicehandler.cpp16
-rw-r--r--src/quick/handlers/qquickpointerdevicehandler_p.h5
-rw-r--r--src/quick/handlers/qquickpointersinglehandler.cpp14
-rw-r--r--src/quick/handlers/qquickpointersinglehandler_p.h8
-rw-r--r--src/quick/handlers/qquicktaphandler.cpp2
5 files changed, 22 insertions, 23 deletions
diff --git a/src/quick/handlers/qquickpointerdevicehandler.cpp b/src/quick/handlers/qquickpointerdevicehandler.cpp
index 03704ac09e..3a320fdb32 100644
--- a/src/quick/handlers/qquickpointerdevicehandler.cpp
+++ b/src/quick/handlers/qquickpointerdevicehandler.cpp
@@ -53,7 +53,6 @@ QQuickPointerDeviceHandler::QQuickPointerDeviceHandler(QObject *parent)
: QQuickPointerHandler(parent)
, m_acceptedDevices(QQuickPointerDevice::AllDevices)
, m_acceptedPointerTypes(QQuickPointerDevice::AllPointerTypes)
- , m_acceptedButtons(Qt::AllButtons)
{
}
@@ -79,30 +78,17 @@ void QQuickPointerDeviceHandler::setAcceptedPointerTypes(QQuickPointerDevice::Po
emit acceptedPointerTypesChanged();
}
-void QQuickPointerDeviceHandler::setAcceptedButtons(Qt::MouseButtons buttons)
-{
- if (m_acceptedButtons == buttons)
- return;
-
- m_acceptedButtons = buttons;
- emit acceptedButtonsChanged();
-}
-
bool QQuickPointerDeviceHandler::wantsPointerEvent(QQuickPointerEvent *event)
{
if (!QQuickPointerHandler::wantsPointerEvent(event))
return false;
qCDebug(lcPointerHandlerDispatch) << objectName()
<< "checking device type" << m_acceptedDevices
- << "pointer type" << m_acceptedPointerTypes
- << "buttons" << m_acceptedButtons;
+ << "pointer type" << m_acceptedPointerTypes;
if ((event->device()->type() & m_acceptedDevices) == 0)
return false;
if ((event->device()->pointerType() & m_acceptedPointerTypes) == 0)
return false;
- if (event->device()->pointerType() != QQuickPointerDevice::Finger &&
- (event->buttons() & m_acceptedButtons) == 0 && (event->button() & m_acceptedButtons) == 0)
- return false;
return true;
}
diff --git a/src/quick/handlers/qquickpointerdevicehandler_p.h b/src/quick/handlers/qquickpointerdevicehandler_p.h
index 2ca7310da8..76c9cc44f0 100644
--- a/src/quick/handlers/qquickpointerdevicehandler_p.h
+++ b/src/quick/handlers/qquickpointerdevicehandler_p.h
@@ -60,7 +60,6 @@ class Q_AUTOTEST_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(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged)
public:
explicit QQuickPointerDeviceHandler(QObject *parent = 0);
@@ -68,17 +67,14 @@ public:
QQuickPointerDevice::DeviceTypes acceptedDevices() const { return m_acceptedDevices; }
QQuickPointerDevice::PointerTypes acceptedPointerTypes() const { return m_acceptedPointerTypes; }
- Qt::MouseButtons acceptedButtons() const { return m_acceptedButtons; }
public slots:
void setAcceptedDevices(QQuickPointerDevice::DeviceTypes acceptedDevices);
void setAcceptedPointerTypes(QQuickPointerDevice::PointerTypes acceptedPointerTypes);
- void setAcceptedButtons(Qt::MouseButtons buttons);
Q_SIGNALS:
void acceptedDevicesChanged();
void acceptedPointerTypesChanged();
- void acceptedButtonsChanged();
protected:
bool wantsPointerEvent(QQuickPointerEvent *event) override;
@@ -86,7 +82,6 @@ protected:
protected:
QQuickPointerDevice::DeviceTypes m_acceptedDevices;
QQuickPointerDevice::PointerTypes m_acceptedPointerTypes;
- Qt::MouseButtons m_acceptedButtons;
};
QT_END_NAMESPACE
diff --git a/src/quick/handlers/qquickpointersinglehandler.cpp b/src/quick/handlers/qquickpointersinglehandler.cpp
index ec66112519..5a8ec2a7fd 100644
--- a/src/quick/handlers/qquickpointersinglehandler.cpp
+++ b/src/quick/handlers/qquickpointersinglehandler.cpp
@@ -55,6 +55,7 @@ QQuickPointerSingleHandler::QQuickPointerSingleHandler(QObject *parent)
, m_pointId(0)
, m_rotation(0)
, m_pressure(0)
+ , m_acceptedButtons(Qt::AllButtons)
{
}
@@ -62,6 +63,10 @@ bool QQuickPointerSingleHandler::wantsPointerEvent(QQuickPointerEvent *event)
{
if (!QQuickPointerDeviceHandler::wantsPointerEvent(event))
return false;
+ if (event->device()->pointerType() != QQuickPointerDevice::Finger &&
+ (event->buttons() & m_acceptedButtons) == 0 && (event->button() & m_acceptedButtons) == 0)
+ return false;
+
if (m_pointId) {
// We already know which one we want, so check whether it's there.
// It's expected to be an update or a release.
@@ -174,6 +179,15 @@ void QQuickPointerSingleHandler::setPressedButtons(Qt::MouseButtons buttons)
}
}
+void QQuickPointerSingleHandler::setAcceptedButtons(Qt::MouseButtons buttons)
+{
+ if (m_acceptedButtons == buttons)
+ return;
+
+ m_acceptedButtons = buttons;
+ emit acceptedButtonsChanged();
+}
+
void QQuickPointerSingleHandler::reset()
{
bool pointIdChange = m_pointId != 0;
diff --git a/src/quick/handlers/qquickpointersinglehandler_p.h b/src/quick/handlers/qquickpointersinglehandler_p.h
index 8c25b9efa4..9c854c4d0d 100644
--- a/src/quick/handlers/qquickpointersinglehandler_p.h
+++ b/src/quick/handlers/qquickpointersinglehandler_p.h
@@ -70,13 +70,15 @@ class Q_QUICK_PRIVATE_EXPORT QQuickPointerSingleHandler : public QQuickPointerDe
Q_PROPERTY(qreal rotation READ rotation NOTIFY eventPointHandled)
Q_PROPERTY(qreal pressure READ pressure NOTIFY eventPointHandled)
Q_PROPERTY(QSizeF ellipseDiameters READ ellipseDiameters NOTIFY eventPointHandled)
-
+ Q_PROPERTY(Qt::MouseButtons acceptedButtons READ acceptedButtons WRITE setAcceptedButtons NOTIFY acceptedButtonsChanged)
public:
explicit QQuickPointerSingleHandler(QObject *parent = 0);
virtual ~QQuickPointerSingleHandler() { }
int pointId() const { return m_pointId; }
Qt::MouseButtons pressedButtons() const { return m_pressedButtons; }
+ Qt::MouseButtons acceptedButtons() const { return m_acceptedButtons; }
+ void setAcceptedButtons(Qt::MouseButtons buttons);
QPointF pressPos() const { return m_pressPos; }
QPointF scenePressPos() const { return parentItem()->mapToScene(m_pressPos); }
QPointF sceneGrabPos() const { return m_sceneGrabPos; }
@@ -88,9 +90,10 @@ public:
QSizeF ellipseDiameters() const { return m_ellipseDiameters; }
QPointingDeviceUniqueId uniquePointId() const { return m_uniquePointId; }
-signals:
+Q_SIGNALS:
void pointIdChanged();
void pressedButtonsChanged();
+ void acceptedButtonsChanged();
void singlePointGrabChanged(); // QQuickPointerHandler::grabChanged signal can't be a property notifier here
void eventPointHandled();
@@ -118,6 +121,7 @@ private:
qreal m_rotation;
qreal m_pressure;
QSizeF m_ellipseDiameters;
+ Qt::MouseButtons m_acceptedButtons;
};
QT_END_NAMESPACE
diff --git a/src/quick/handlers/qquicktaphandler.cpp b/src/quick/handlers/qquicktaphandler.cpp
index b05d32f4b4..5ee415d710 100644
--- a/src/quick/handlers/qquicktaphandler.cpp
+++ b/src/quick/handlers/qquicktaphandler.cpp
@@ -148,7 +148,7 @@ void QQuickTapHandler::handleEventPoint(QQuickEventPoint *point)
setPressed(true, false, point);
break;
case QQuickEventPoint::Released:
- if ((point->pointerEvent()->buttons() & m_acceptedButtons) == Qt::NoButton)
+ if ((point->pointerEvent()->buttons() & acceptedButtons()) == Qt::NoButton)
setPressed(false, false, point);
break;
default: