diff options
Diffstat (limited to 'src/quick/items/qquickevents.cpp')
-rw-r--r-- | src/quick/items/qquickevents.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/quick/items/qquickevents.cpp b/src/quick/items/qquickevents.cpp index 0c18cb4104..a68e72b0b7 100644 --- a/src/quick/items/qquickevents.cpp +++ b/src/quick/items/qquickevents.cpp @@ -835,6 +835,11 @@ bool QQuickPointerMouseEvent::allPointsAccepted() const { return m_mousePoint->isAccepted(); } +bool QQuickPointerMouseEvent::allPointsGrabbed() const +{ + return m_mousePoint->grabber() != nullptr; +} + QMouseEvent *QQuickPointerMouseEvent::asMouseEvent(const QPointF &localPos) const { auto event = static_cast<QMouseEvent *>(m_event); @@ -854,6 +859,11 @@ void QQuickPointerMouseEvent::clearGrabbers() const { m_mousePoint->setGrabberItem(nullptr); } +bool QQuickPointerMouseEvent::hasGrabber(const QQuickPointerHandler *handler) const +{ + return m_mousePoint->grabber() == handler; +} + bool QQuickPointerMouseEvent::isPressEvent() const { auto me = static_cast<QMouseEvent*>(m_event); @@ -869,6 +879,15 @@ bool QQuickPointerTouchEvent::allPointsAccepted() const { return true; } +bool QQuickPointerTouchEvent::allPointsGrabbed() const +{ + for (int i = 0; i < m_pointCount; ++i) { + if (!m_touchPoints.at(i)->grabber()) + return false; + } + return true; +} + QVector<QObject *> QQuickPointerTouchEvent::grabbers() const { QVector<QObject *> result; @@ -887,6 +906,14 @@ void QQuickPointerTouchEvent::clearGrabbers() const { point->setGrabber(nullptr); } +bool QQuickPointerTouchEvent::hasGrabber(const QQuickPointerHandler *handler) const +{ + for (auto point: m_touchPoints) + if (point->grabber() == handler) + return true; + return false; +} + bool QQuickPointerTouchEvent::isPressEvent() const { return static_cast<QTouchEvent*>(m_event)->touchPointStates() & Qt::TouchPointPressed; |