diff options
author | Kevin Funk <kevin.funk@kdab.com> | 2014-05-07 19:01:19 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-14 14:05:46 +0200 |
commit | 528b720d8f25c851b5e73b4159c20d70a47aefc0 (patch) | |
tree | 07f895d250848be72811c5cea776d8bab239e340 /tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp | |
parent | cf7166e266e20d3da940b9f58d8631d23cc38482 (diff) |
Introduce MouseArea.drag.smoothed
[ChangeLog][QtQuick] Added property MouseArea.drag.smoothed for toggling
whether the drag target is moved to the current mouse position after a
drag operation has started.
Task-number: QTBUG-38539
Change-Id: I989b51bc83fc24c64b84ac8e9a50b352e674e8f8
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp')
-rw-r--r-- | tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp index d0a1c18885..ee29ed2075 100644 --- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp +++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp @@ -86,6 +86,7 @@ private slots: void resetDrag(); void dragging_data() { acceptedButton_data(); } void dragging(); + void dragSmoothed(); void dragThreshold(); void invalidDrag_data() { rejectedButton_data(); } void invalidDrag(); @@ -334,6 +335,50 @@ void tst_QQuickMouseArea::dragging() QCOMPARE(blackRect->y(), 61.0); } +void tst_QQuickMouseArea::dragSmoothed() +{ + QQuickView window; + QByteArray errorMessage; + QVERIFY2(initView(window, testFileUrl("dragging.qml"), true, &errorMessage), errorMessage.constData()); + + window.show(); + QVERIFY(QTest::qWaitForWindowExposed(&window)); + QVERIFY(window.rootObject() != 0); + + QQuickMouseArea *mouseRegion = window.rootObject()->findChild<QQuickMouseArea*>("mouseregion"); + QQuickDrag *drag = mouseRegion->drag(); + drag->setThreshold(5); + + mouseRegion->setAcceptedButtons(Qt::LeftButton); + QQuickItem *blackRect = window.rootObject()->findChild<QQuickItem*>("blackrect"); + QVERIFY(blackRect != 0); + QVERIFY(blackRect == drag->target()); + QVERIFY(!drag->active()); + QTest::mousePress(&window, Qt::LeftButton, 0, QPoint(100,100)); + QVERIFY(!drag->active()); + QTest::mouseMove(&window, QPoint(100, 102), 50); + QTest::mouseMove(&window, QPoint(100, 106), 50); + QTest::mouseMove(&window, QPoint(100, 122), 50); + QTRY_COMPARE(blackRect->x(), 50.0); + QTRY_COMPARE(blackRect->y(), 66.0); + QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100,122)); + + // reset rect position + blackRect->setX(50.0); + blackRect->setY(50.0); + + // now try with smoothed disabled + drag->setSmoothed(false); + QVERIFY(!drag->active()); + QTest::mousePress(&window, Qt::LeftButton, 0, QPoint(100,100)); + QVERIFY(!drag->active()); + QTest::mouseMove(&window, QPoint(100, 102), 50); + QTest::mouseMove(&window, QPoint(100, 106), 50); + QTest::mouseMove(&window, QPoint(100, 122), 50); + QTRY_COMPARE(blackRect->x(), 50.0); + QTRY_COMPARE(blackRect->y(), 72.0); + QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100, 122)); +} void tst_QQuickMouseArea::dragThreshold() { |