diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2016-10-07 11:34:15 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2016-10-07 11:08:01 +0000 |
commit | 59813165989da88f7d4ecec97f952b691636d683 (patch) | |
tree | 3e743f2a098b1cd4d418540273b089bc7820ff3d /tests/manual/gifs/tst_gifs.cpp | |
parent | ffae0f0842c4a3b116c3d8d2a099c1da0d527264 (diff) |
Slider: add GIFs to demonstrate snap modes
Change-Id: I19d436cd9b48e3ab2498029d4b306f6a0e9ff977
Task-number: QTBUG-55904
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'tests/manual/gifs/tst_gifs.cpp')
-rw-r--r-- | tests/manual/gifs/tst_gifs.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/manual/gifs/tst_gifs.cpp b/tests/manual/gifs/tst_gifs.cpp index 8bbd3ba8..b64d3573 100644 --- a/tests/manual/gifs/tst_gifs.cpp +++ b/tests/manual/gifs/tst_gifs.cpp @@ -51,6 +51,8 @@ private slots: void tumblerWrap(); void slider(); + void sliderSnap_data(); + void sliderSnap(); void rangeSlider(); void busyIndicator(); void switchGif(); @@ -239,6 +241,58 @@ void tst_Gifs::slider() gifRecorder.waitForFinish(); } +void tst_Gifs::sliderSnap_data() +{ + QTest::addColumn<QString>("gifBaseName"); + QTest::addColumn<int>("snapMode"); + QTest::newRow("NoSnap") << "qtquickcontrols2-slider-nosnap" << 0; + QTest::newRow("SnapAlways") << "qtquickcontrols2-slider-snapalways" << 1; + QTest::newRow("SnapOnRelease") << "qtquickcontrols2-slider-snaponrelease" << 2; +} + +void tst_Gifs::sliderSnap() +{ + QFETCH(QString, gifBaseName); + QFETCH(int, snapMode); + + GifRecorder gifRecorder; + gifRecorder.setDataDirPath(dataDirPath); + gifRecorder.setOutputDir(outputDir); + gifRecorder.setRecordingDuration(8); + gifRecorder.setHighQuality(true); + gifRecorder.setQmlFileName("qtquickcontrols2-slider-snap.qml"); + gifRecorder.setOutputFileBaseName(gifBaseName); + + gifRecorder.start(); + + QQuickWindow *window = gifRecorder.window(); + QQuickItem *slider = window->property("slider").value<QQuickItem*>(); + QVERIFY(slider); + QVERIFY(slider->setProperty("snapMode", QVariant(snapMode))); + QCOMPARE(slider->property("snapMode").toInt(), snapMode); + QQuickItem *handle = slider->property("handle").value<QQuickItem*>(); + QVERIFY(handle); + + const QPoint startPos(slider->property("leftPadding").toReal(), slider->height() / 2); + const int trackWidth = slider->property("availableWidth").toReal(); + + QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, startPos, 200); + QPoint pos1 = startPos + QPoint(trackWidth * 0.3, 0); + moveSmoothly(window, startPos, pos1, pos1.x() - startPos.x(), QEasingCurve::OutQuint, 30); + QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, pos1, 0); + + QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, startPos, 400); + const QPoint pos2 = startPos + QPoint(trackWidth * 0.6, 0); + moveSmoothly(window, pos1, pos2, pos2.x() - pos1.x(), QEasingCurve::OutQuint, 30); + QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, pos2, 0); + + QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, pos2, 400); + moveSmoothly(window, pos2, startPos, qAbs(startPos.x() - pos2.x()) / 2, QEasingCurve::OutQuint, 30); + QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, startPos, 0); + + gifRecorder.waitForFinish(); +} + void tst_Gifs::rangeSlider() { GifRecorder gifRecorder; |