aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-07-03 13:57:54 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-04 10:12:10 +0200
commit6a013bf73b27f112bc7cff04225b92d893804b29 (patch)
treea9f9264c6470731398a27fef83e6c924f80809f0 /tests
parentb9c039b3ac76d20ffe2d05259d5406b7c1bac25d (diff)
PathView needs drag events similar to Flickable
Added dragging property and dragStarted() and dragEnded() signals. Task-number: QTBUG-21740 Change-Id: I718835ff7e46af615951ec5f248eba41bac31071 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquickpathview/tst_qquickpathview.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
index d164563b93..d8575353ea 100644
--- a/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
+++ b/tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
@@ -1428,6 +1428,13 @@ void tst_QQuickPathView::mouseDrag()
QQuickPathView *pathview = qobject_cast<QQuickPathView*>(canvas->rootObject());
QVERIFY(pathview != 0);
+ QSignalSpy movingSpy(pathview, SIGNAL(movingChanged()));
+ QSignalSpy moveStartedSpy(pathview, SIGNAL(movementStarted()));
+ QSignalSpy moveEndedSpy(pathview, SIGNAL(movementEnded()));
+ QSignalSpy draggingSpy(pathview, SIGNAL(draggingChanged()));
+ QSignalSpy dragStartedSpy(pathview, SIGNAL(dragStarted()));
+ QSignalSpy dragEndedSpy(pathview, SIGNAL(dragEnded()));
+
int current = pathview->currentIndex();
QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(10,100));
@@ -1439,6 +1446,13 @@ void tst_QQuickPathView::mouseDrag()
}
// first move beyond threshold does not trigger drag
QVERIFY(!pathview->isMoving());
+ QVERIFY(!pathview->isDragging());
+ QCOMPARE(movingSpy.count(), 0);
+ QCOMPARE(moveStartedSpy.count(), 0);
+ QCOMPARE(moveEndedSpy.count(), 0);
+ QCOMPARE(draggingSpy.count(), 0);
+ QCOMPARE(dragStartedSpy.count(), 0);
+ QCOMPARE(dragEndedSpy.count(), 0);
{
QMouseEvent mv(QEvent::MouseMove, QPoint(90,100), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
@@ -1446,10 +1460,24 @@ void tst_QQuickPathView::mouseDrag()
}
// next move beyond threshold does trigger drag
QVERIFY(pathview->isMoving());
+ QVERIFY(pathview->isDragging());
+ QCOMPARE(movingSpy.count(), 1);
+ QCOMPARE(moveStartedSpy.count(), 1);
+ QCOMPARE(moveEndedSpy.count(), 0);
+ QCOMPARE(draggingSpy.count(), 1);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 0);
QVERIFY(pathview->currentIndex() != current);
QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(40,100));
+ QVERIFY(!pathview->isDragging());
+ QCOMPARE(draggingSpy.count(), 2);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 1);
+ QTRY_COMPARE(movingSpy.count(), 2);
+ QTRY_COMPARE(moveEndedSpy.count(), 1);
+ QCOMPARE(moveStartedSpy.count(), 1);
delete canvas;
}
@@ -1691,6 +1719,10 @@ void tst_QQuickPathView::cancelDrag()
QQuickPathView *pathview = qobject_cast<QQuickPathView*>(canvas->rootObject());
QVERIFY(pathview != 0);
+ QSignalSpy draggingSpy(pathview, SIGNAL(draggingChanged()));
+ QSignalSpy dragStartedSpy(pathview, SIGNAL(dragStarted()));
+ QSignalSpy dragEndedSpy(pathview, SIGNAL(dragEnded()));
+
// drag between snap points
QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(10,100));
QTest::qWait(100);
@@ -1699,6 +1731,10 @@ void tst_QQuickPathView::cancelDrag()
QTRY_VERIFY(pathview->offset() != qFloor(pathview->offset()));
QTRY_VERIFY(pathview->isMoving());
+ QVERIFY(pathview->isDragging());
+ QCOMPARE(draggingSpy.count(), 1);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 0);
// steal mouse grab - cancels PathView dragging
QQuickItem *item = canvas->rootObject()->findChild<QQuickItem*>("text");
@@ -1707,6 +1743,10 @@ void tst_QQuickPathView::cancelDrag()
// returns to a snap point.
QTRY_VERIFY(pathview->offset() == qFloor(pathview->offset()));
QTRY_VERIFY(!pathview->isMoving());
+ QVERIFY(!pathview->isDragging());
+ QCOMPARE(draggingSpy.count(), 2);
+ QCOMPARE(dragStartedSpy.count(), 1);
+ QCOMPARE(dragEndedSpy.count(), 1);
QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(40,100));