diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-07-21 22:08:36 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-08-06 10:23:56 +0200 |
commit | 6d6ed64d6ca27c1b5fec305e6ed9b923b5bb1037 (patch) | |
tree | 1cf102bc85019cf61a6b398c6b1fae0de367759d /tests | |
parent | b9873b7dde4042445dbb5ff3c46cea96b2dea4aa (diff) |
Add QPointerEvent::is[Press|Update|Release]Event accessors
QQuickPointerEvent had them, so despite how trivial they look,
it's very convenient to keep using them in QQuickWindow rather than
duplicating these kinds of checks in various places, and for multiple
event types too.
Change-Id: I32ad8110fd2361e69de50a679ddbdb2a2db7ecee
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp | 15 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp | 34 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp b/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp index eda66198b7..70e5169648 100644 --- a/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp +++ b/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp @@ -113,13 +113,28 @@ void tst_QMouseEvent::mouseEventBasic() QPointF local(100, 100); QPointF scene(200, 200); QPointF screen(300, 300); + // Press left button QMouseEvent me(QEvent::MouseButtonPress, local, scene, screen, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); QCOMPARE(me.isAccepted(), true); QCOMPARE(me.button(), Qt::LeftButton); QCOMPARE(me.buttons(), Qt::LeftButton); + QVERIFY(me.isPressEvent()); + QVERIFY(!me.isReleaseEvent()); QCOMPARE(me.position(), local); QCOMPARE(me.scenePosition(), scene); QCOMPARE(me.globalPosition(), screen); + // Press right button while left is already pressed + me = QMouseEvent(QEvent::MouseButtonPress, local, scene, screen, Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier); + QVERIFY(me.isPressEvent()); + QVERIFY(!me.isReleaseEvent()); + // Release right button while left is still pressed + me = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::RightButton, Qt::LeftButton, Qt::NoModifier); + QVERIFY(!me.isPressEvent()); + QVERIFY(me.isReleaseEvent()); + // Release left button in the usual way + me = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + QVERIFY(!me.isPressEvent()); + QVERIFY(me.isReleaseEvent()); } void tst_QMouseEvent::checkMousePressEvent_data() diff --git a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp index 08c8dd3f78..d3d8eba34d 100644 --- a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp +++ b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp @@ -217,6 +217,7 @@ public: private slots: void cleanup(); void qPointerUniqueId(); + void state(); void touchDisabledByDefault(); void touchEventAcceptedByDefault(); void touchBeginPropagatesWhenIgnored(); @@ -290,6 +291,39 @@ void tst_QTouchEvent::qPointerUniqueId() QCOMPARE(set.size(), 2); } +void tst_QTouchEvent::state() +{ + QTouchEvent touchEvent(QEvent::TouchBegin, touchScreenDevice, + Qt::NoModifier, QList<QEventPoint>() << + QEventPoint(0, QEventPoint::State::Stationary, {}, {}) << + QEventPoint(1, QEventPoint::State::Pressed, {}, {})); + QCOMPARE(touchEvent.touchPointStates(), QEventPoint::State::Stationary | QEventPoint::State::Pressed); + QCOMPARE(touchEvent.pointCount(), 2); + QVERIFY(touchEvent.isPressEvent()); + QVERIFY(!touchEvent.isUpdateEvent()); + QVERIFY(!touchEvent.isReleaseEvent()); + + touchEvent = QTouchEvent(QEvent::TouchBegin, touchScreenDevice, + Qt::NoModifier, QList<QEventPoint>() << + QEventPoint(0, QEventPoint::State::Updated, {}, {}) << + QEventPoint(1, QEventPoint::State::Pressed, {}, {})); + QCOMPARE(touchEvent.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Pressed); + QCOMPARE(touchEvent.pointCount(), 2); + QVERIFY(touchEvent.isPressEvent()); + QVERIFY(!touchEvent.isUpdateEvent()); + QVERIFY(!touchEvent.isReleaseEvent()); + + touchEvent = QTouchEvent(QEvent::TouchBegin, touchScreenDevice, + Qt::NoModifier, QList<QEventPoint>() << + QEventPoint(0, QEventPoint::State::Updated, {}, {}) << + QEventPoint(1, QEventPoint::State::Released, {}, {})); + QCOMPARE(touchEvent.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Released); + QCOMPARE(touchEvent.pointCount(), 2); + QVERIFY(!touchEvent.isPressEvent()); + QVERIFY(!touchEvent.isUpdateEvent()); + QVERIFY(touchEvent.isReleaseEvent()); +} + void tst_QTouchEvent::touchDisabledByDefault() { // QWidget |