From 017a82c6702768aed68c34f319fa14da591f3df2 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Fri, 30 Dec 2011 13:45:40 +1000 Subject: touchUpdated should be called for release and cancel. touchUpdated should be emitted whenever the touch is updated, even if the update means there are no longer any valid touch points. Change-Id: Iceac5a65094784928108acc764bbc1d5c2b9a08a Reviewed-by: Alan Alpert --- tests/auto/qtquick2/qquickmultipointtoucharea/data/inFlickable.qml | 6 ++++++ tests/auto/qtquick2/qquickmultipointtoucharea/data/signalTest.qml | 7 ++++++- .../qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/qtquick2/qquickmultipointtoucharea/data/inFlickable.qml b/tests/auto/qtquick2/qquickmultipointtoucharea/data/inFlickable.qml index 53a2bf87f9..5db377011c 100644 --- a/tests/auto/qtquick2/qquickmultipointtoucharea/data/inFlickable.qml +++ b/tests/auto/qtquick2/qquickmultipointtoucharea/data/inFlickable.qml @@ -7,6 +7,9 @@ Flickable { contentWidth: width contentHeight: height * 2 + property int cancelCount: 0 + property int touchCount: 0 + MultiPointTouchArea { anchors.fill: parent minimumTouchPoints: 2 @@ -20,6 +23,9 @@ Flickable { TouchPoint { id: point1; objectName: "point1" }, TouchPoint { id: point2; objectName: "point2" } ] + + onTouchPointsCanceled: cancelCount = touchPoints.length + onTouchUpdated: touchCount = touchPoints.length } } diff --git a/tests/auto/qtquick2/qquickmultipointtoucharea/data/signalTest.qml b/tests/auto/qtquick2/qquickmultipointtoucharea/data/signalTest.qml index 3a6aa86a1c..85f8cd6f39 100644 --- a/tests/auto/qtquick2/qquickmultipointtoucharea/data/signalTest.qml +++ b/tests/auto/qtquick2/qquickmultipointtoucharea/data/signalTest.qml @@ -9,17 +9,22 @@ MultiPointTouchArea { touchPointUpdateCount = 0; touchPointReleaseCount = 0; touchCount = 0; + touchUpdatedHandled = false; } property int touchPointPressCount: 0 property int touchPointUpdateCount: 0 property int touchPointReleaseCount: 0 property int touchCount: 0 + property bool touchUpdatedHandled: false maximumTouchPoints: 5 onTouchPointsPressed: { touchPointPressCount = touchPoints.length } onTouchPointsUpdated: { touchPointUpdateCount = touchPoints.length } onTouchPointsReleased: { touchPointReleaseCount = touchPoints.length } - onTouchUpdated: { touchCount = touchPoints.length } + onTouchUpdated: { + touchCount = touchPoints.length + touchUpdatedHandled = true + } } diff --git a/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp b/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp index 230825011a..837c31f073 100644 --- a/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp +++ b/tests/auto/qtquick2/qquickmultipointtoucharea/tst_qquickmultipointtoucharea.cpp @@ -149,6 +149,7 @@ void tst_QQuickMultiPointTouchArea::signalTest() QCOMPARE(area->property("touchPointUpdateCount").toInt(), 0); QCOMPARE(area->property("touchPointReleaseCount").toInt(), 3); QCOMPARE(area->property("touchCount").toInt(), 0); + QCOMPARE(area->property("touchUpdatedHandled").toBool(), true); QMetaObject::invokeMethod(area, "clearCounts"); delete canvas; @@ -600,6 +601,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QCOMPARE(point11->pressed(), true); QCOMPARE(point12->pressed(), true); + QCOMPARE(flickable->property("cancelCount").toInt(), 0); + QCOMPARE(flickable->property("touchCount").toInt(), 2); p1 += QPoint(0,15); p2 += QPoint(0,15); QTest::touchEvent(canvas, device).move(0, p1).move(1, p2); @@ -620,6 +623,8 @@ void tst_QQuickMultiPointTouchArea::inFlickable() QVERIFY(flickable->contentY() < 0); QCOMPARE(point11->pressed(), false); QCOMPARE(point12->pressed(), false); + QCOMPARE(flickable->property("cancelCount").toInt(), 2); + QCOMPARE(flickable->property("touchCount").toInt(), 0); QTest::touchEvent(canvas, device).release(0, p1).release(1, p2); QTest::mouseRelease(canvas,Qt::LeftButton, 0, p1); -- cgit v1.2.3