diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2011-12-22 10:53:25 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-23 00:16:26 +0100 |
commit | 9e61464c9026c4b766e05ea8c784f8e6a615adba (patch) | |
tree | 97592742db7067472bbcb2063b1c8831ef2a7037 /tests | |
parent | 5c22d958fb7cd5e9729518a6fdd0a9a18a9a7481 (diff) |
Add a pressed property to TouchPoint.
Remove the valid property, and replace it with pressed. The semantics
have changed slightly for a release -- pressed will immediately become
false, whereas valid remained true until the next touch event.
Also make sure touch information is correctly updated on release.
Change-Id: Ic61e1b6884c67f19100a6f8fc218b8b05b291ff0
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qtquick2/qquickmultipointtoucharea/data/basic.qml | 15 | ||||
-rw-r--r-- | tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp | 325 |
2 files changed, 227 insertions, 113 deletions
diff --git a/tests/auto/qtquick2/qquickmultipointtoucharea/data/basic.qml b/tests/auto/qtquick2/qquickmultipointtoucharea/data/basic.qml new file mode 100644 index 0000000000..cd6ce8146f --- /dev/null +++ b/tests/auto/qtquick2/qquickmultipointtoucharea/data/basic.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 + +MultiPointTouchArea { + width: 240 + height: 320 + + minimumTouchPoints: 1 + maximumTouchPoints: 4 + touchPoints: [ + TouchPoint { objectName: "point1" }, + TouchPoint { objectName: "point2" }, + TouchPoint { objectName: "point3" }, + TouchPoint { objectName: "point4" } + ] +} diff --git a/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp b/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp index 59a913e094..44d277618d 100644 --- a/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp +++ b/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp @@ -62,6 +62,8 @@ private slots: void properties(); void signalTest(); + void release(); + void reuse(); void nonOverlapping(); void nested(); void inFlickable(); @@ -151,6 +153,104 @@ void tst_QQuickMultiPointTouchArea::signalTest() delete canvas; } +void tst_QQuickMultiPointTouchArea::release() +{ + QQuickView *canvas = createAndShowView("basic.qml"); + QVERIFY(canvas->rootObject() != 0); + + QQuickTouchPoint *point1 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point1"); + + QCOMPARE(point1->pressed(), false); + + QPoint p1(20,100); + + QTest::QTouchEventSequence sequence = QTest::touchEvent(canvas, device); + + sequence.press(0, p1).commit(); + + QCOMPARE(point1->pressed(), true); + + p1 += QPoint(0,10); + + sequence.move(0, p1).commit(); + + QCOMPARE(point1->pressed(), true); + QCOMPARE(point1->x(), qreal(20)); QCOMPARE(point1->y(), qreal(110)); + + p1 += QPoint(4,10); + + sequence.release(0, p1).commit(); + + //test that a release without a prior move to the release position successfully updates the point's position + QCOMPARE(point1->pressed(), false); + QCOMPARE(point1->x(), qreal(24)); QCOMPARE(point1->y(), qreal(120)); + + delete canvas; +} + +void tst_QQuickMultiPointTouchArea::reuse() +{ + QQuickView *canvas = createAndShowView("basic.qml"); + QVERIFY(canvas->rootObject() != 0); + + QQuickTouchPoint *point1 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point1"); + QQuickTouchPoint *point2 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point2"); + QQuickTouchPoint *point3 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point3"); + + QCOMPARE(point1->pressed(), false); + QCOMPARE(point2->pressed(), false); + + QPoint p1(20,100); + QPoint p2(40,100); + QPoint p3(60,100); + QPoint p4(80,100); + + QTest::QTouchEventSequence sequence = QTest::touchEvent(canvas, device); + + sequence.press(0, p1).press(1, p2).commit(); + + QCOMPARE(point1->pressed(), true); + QCOMPARE(point2->pressed(), true); + QCOMPARE(point3->pressed(), false); + + sequence.release(0, p1).stationary(1).press(2, p3).commit(); + + //we shouldn't reuse point 1 yet + QCOMPARE(point1->pressed(), false); + QCOMPARE(point2->pressed(), true); + QCOMPARE(point3->pressed(), true); + + //back to base state (no touches) + sequence.release(1, p2).release(2, p3).commit(); + + QCOMPARE(point1->pressed(), false); + QCOMPARE(point2->pressed(), false); + QCOMPARE(point3->pressed(), false); + + sequence.press(0, p1).press(1, p2).commit(); + + QCOMPARE(point1->pressed(), true); + QCOMPARE(point2->pressed(), true); + QCOMPARE(point3->pressed(), false); + + sequence.release(0, p1).stationary(1).commit(); + + QCOMPARE(point1->pressed(), false); + QCOMPARE(point2->pressed(), true); + QCOMPARE(point3->pressed(), false); + + sequence.press(4, p4).stationary(1).commit(); + + //the new touch point should reuse point 1 + QCOMPARE(point1->pressed(), true); + QCOMPARE(point2->pressed(), true); + QCOMPARE(point3->pressed(), false); + + QCOMPARE(point1->x(), qreal(80)); QCOMPARE(point1->y(), qreal(100)); + + delete canvas; +} + void tst_QQuickMultiPointTouchArea::nonOverlapping() { QQuickView *canvas = createAndShowView("nonOverlapping.qml"); @@ -162,11 +262,11 @@ void tst_QQuickMultiPointTouchArea::nonOverlapping() QQuickTouchPoint *point22 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point22"); QQuickTouchPoint *point23 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point23"); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QPoint p1(20,100); QPoint p2(40,100); @@ -178,19 +278,19 @@ void tst_QQuickMultiPointTouchArea::nonOverlapping() sequence.press(0, p1).commit(); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); sequence.stationary(0).press(1, p2).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(100)); QCOMPARE(point12->x(), qreal(40)); QCOMPARE(point12->y(), qreal(100)); @@ -199,30 +299,30 @@ void tst_QQuickMultiPointTouchArea::nonOverlapping() p2 += QPoint(5,0); sequence.move(0, p1).move(1, p2).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); QCOMPARE(point12->x(), qreal(45)); QCOMPARE(point12->y(), qreal(100)); sequence.stationary(0).stationary(1).press(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); sequence.stationary(0).stationary(1).stationary(2).press(3, p4).press(4, p5).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); QCOMPARE(point12->x(), qreal(45)); QCOMPARE(point12->y(), qreal(100)); @@ -237,11 +337,11 @@ void tst_QQuickMultiPointTouchArea::nonOverlapping() p5 += QPoint(-7,10); sequence.move(0, p1).move(1, p2).move(2, p3).move(3, p4).move(4, p5).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); QCOMPARE(point11->x(), qreal(24)); QCOMPARE(point11->y(), qreal(120)); QCOMPARE(point12->x(), qreal(62)); QCOMPARE(point12->y(), qreal(117)); @@ -251,12 +351,11 @@ void tst_QQuickMultiPointTouchArea::nonOverlapping() sequence.release(0, p1).release(1, p2).release(2, p3).release(3, p4).release(4, p5).commit(); - //points remain valid immediately after release - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); delete canvas; } @@ -272,11 +371,11 @@ void tst_QQuickMultiPointTouchArea::nested() QQuickTouchPoint *point22 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point22"); QQuickTouchPoint *point23 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point23"); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QPoint p1(20,100); QPoint p2(40,100); @@ -286,19 +385,19 @@ void tst_QQuickMultiPointTouchArea::nested() sequence.press(0, p1).commit(); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); sequence.stationary(0).press(1, p2).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(100)); QCOMPARE(point12->x(), qreal(40)); QCOMPARE(point12->y(), qreal(100)); @@ -307,22 +406,22 @@ void tst_QQuickMultiPointTouchArea::nested() p2 += QPoint(5,0); sequence.move(0, p1).move(1, p2).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); QCOMPARE(point12->x(), qreal(45)); QCOMPARE(point12->y(), qreal(100)); sequence.stationary(0).stationary(1).press(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); //point11 should be same as point21, point12 same as point22 QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); @@ -333,11 +432,11 @@ void tst_QQuickMultiPointTouchArea::nested() sequence.stationary(0).stationary(1).stationary(2).press(3, QPoint(80,180)).press(4, QPoint(100,180)).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); //new touch points should be ignored (have no impact on our existing touch points) QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); @@ -353,11 +452,11 @@ void tst_QQuickMultiPointTouchArea::nested() p3 += QPoint(3,0); sequence.move(0, p1).move(1, p2).move(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); QCOMPARE(point21->x(), qreal(24)); QCOMPARE(point21->y(), qreal(120)); QCOMPARE(point22->x(), qreal(62)); QCOMPARE(point22->y(), qreal(117)); @@ -370,11 +469,11 @@ void tst_QQuickMultiPointTouchArea::nested() p3 += QPoint(3,0); sequence.move(0, p1).move(1, p2).move(2, p3).commit(); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); //first two remain the same (touches now grabbed by inner touch area) QCOMPARE(point11->x(), qreal(24)); QCOMPARE(point11->y(), qreal(120)); @@ -387,11 +486,11 @@ void tst_QQuickMultiPointTouchArea::nested() sequence.press(0, p1).commit(); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); - QCOMPARE(point21->isValid(), false); - QCOMPARE(point22->isValid(), false); - QCOMPARE(point23->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); + QCOMPARE(point21->pressed(), false); + QCOMPARE(point22->pressed(), false); + QCOMPARE(point23->pressed(), false); sequence.release(0, p1).commit(); @@ -400,22 +499,22 @@ void tst_QQuickMultiPointTouchArea::nested() sequence.press(0, p1).press(1, p2).press(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); p1 -= QPoint(4,10); p2 -= QPoint(17,17); p3 -= QPoint(3,0); sequence.move(0, p1).move(1, p2).move(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); QCOMPARE(point21->x(), qreal(24)); QCOMPARE(point21->y(), qreal(120)); QCOMPARE(point22->x(), qreal(62)); QCOMPARE(point22->y(), qreal(117)); @@ -428,11 +527,11 @@ void tst_QQuickMultiPointTouchArea::nested() p3 -= QPoint(3,0); sequence.move(0, p1).move(1, p2).move(2, p3).commit(); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); - QCOMPARE(point21->isValid(), true); - QCOMPARE(point22->isValid(), true); - QCOMPARE(point23->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); + QCOMPARE(point21->pressed(), true); + QCOMPARE(point22->pressed(), true); + QCOMPARE(point23->pressed(), true); //all change (touches not grabbed by inner touch area) QCOMPARE(point11->x(), qreal(20)); QCOMPARE(point11->y(), qreal(110)); @@ -457,8 +556,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QQuickTouchPoint *point11 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point1"); QQuickTouchPoint *point12 = canvas->rootObject()->findChild<QQuickTouchPoint*>("point2"); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); QPoint p1(20,100); QPoint p2(40,100); @@ -484,8 +583,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QTest::mouseMove(canvas, p1); QVERIFY(flickable->contentY() < 0); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); QTest::touchEvent(canvas, device).release(0, p1); QTest::mouseRelease(canvas,Qt::LeftButton, 0, p1); @@ -498,8 +597,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QTest::touchEvent(canvas, device).press(0, p1).press(1, p2); QTest::mousePress(canvas, Qt::LeftButton, 0, p1); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); p1 += QPoint(0,15); p2 += QPoint(0,15); QTest::touchEvent(canvas, device).move(0, p1).move(1, p2); @@ -518,8 +617,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QTest::mouseMove(canvas, p1); QVERIFY(flickable->contentY() < 0); - QCOMPARE(point11->isValid(), false); - QCOMPARE(point12->isValid(), false); + QCOMPARE(point11->pressed(), false); + QCOMPARE(point12->pressed(), false); QTest::touchEvent(canvas, device).release(0, p1).release(1, p2); QTest::mouseRelease(canvas,Qt::LeftButton, 0, p1); @@ -533,8 +632,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QTest::touchEvent(canvas, device).press(0, p1).press(1, p2); QTest::mousePress(canvas, Qt::LeftButton, 0, p1); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); p1 += QPoint(15,0); p2 += QPoint(15,0); QTest::touchEvent(canvas, device).move(0, p1).move(1, p2); @@ -569,8 +668,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QTest::mouseMove(canvas, p1); QVERIFY(flickable->contentY() == 0); - QCOMPARE(point11->isValid(), true); - QCOMPARE(point12->isValid(), true); + QCOMPARE(point11->pressed(), true); + QCOMPARE(point12->pressed(), true); QTest::touchEvent(canvas, device).release(0, p1).release(1, p2); QTest::mouseRelease(canvas,Qt::LeftButton, 0, p1); |