From 7a418e470b1fa91d73d7ee8d299bd4a95b40eab9 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Fri, 30 Sep 2016 14:55:05 +0200 Subject: CheckBox: add GIFs to documentation - Replace the state table in the detailed description with a GIF. - Add a GIF for the tri-state documentation. Change-Id: I00f3835edad6eb454d06847ab342ce0eeb30156b Task-number: QTBUG-55904 Reviewed-by: J-P Nurmi --- .../data/qtquickcontrols2-checkbox-tristate.qml | 77 ++++++++++++++++++++++ .../manual/gifs/data/qtquickcontrols2-checkbox.qml | 72 ++++++++++++++++++++ tests/manual/gifs/tst_gifs.cpp | 58 ++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 tests/manual/gifs/data/qtquickcontrols2-checkbox-tristate.qml create mode 100644 tests/manual/gifs/data/qtquickcontrols2-checkbox.qml (limited to 'tests') diff --git a/tests/manual/gifs/data/qtquickcontrols2-checkbox-tristate.qml b/tests/manual/gifs/data/qtquickcontrols2-checkbox-tristate.qml new file mode 100644 index 00000000..ef7e18d4 --- /dev/null +++ b/tests/manual/gifs/data/qtquickcontrols2-checkbox-tristate.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.6 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.0 + +Window { + width: column.implicitWidth + height: column.implicitHeight + visible: true + + property alias english: english + property alias norwegian: norwegian + + ColumnLayout { + id: column + anchors.centerIn: parent + + CheckBox { + text: qsTr("Languages") + checkState: english.checked && norwegian.checked + ? Qt.Checked : (english.checked || norwegian.checked) ? Qt.PartiallyChecked : Qt.Unchecked + tristate: true + } + CheckBox { + id: english + text: qsTr("English") + checked: true + leftPadding: indicator.width + } + CheckBox { + id: norwegian + text: qsTr("Norwegian") + checked: true + leftPadding: indicator.width + } + } +} diff --git a/tests/manual/gifs/data/qtquickcontrols2-checkbox.qml b/tests/manual/gifs/data/qtquickcontrols2-checkbox.qml new file mode 100644 index 00000000..ef53721d --- /dev/null +++ b/tests/manual/gifs/data/qtquickcontrols2-checkbox.qml @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.6 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.0 + +Window { + width: column.implicitWidth + height: column.implicitHeight + visible: true + + property alias second: second + property alias third: third + + ColumnLayout { + id: column + anchors.centerIn: parent + + CheckBox { + checked: true + text: qsTr("First") + } + CheckBox { + id: second + text: qsTr("Second") + } + CheckBox { + id: third + checked: true + text: qsTr("Third") + } + } +} diff --git a/tests/manual/gifs/tst_gifs.cpp b/tests/manual/gifs/tst_gifs.cpp index e893d86e..27234e63 100644 --- a/tests/manual/gifs/tst_gifs.cpp +++ b/tests/manual/gifs/tst_gifs.cpp @@ -65,6 +65,8 @@ private slots: void delegates(); void dial_data(); void dial(); + void checkBox(); + void checkBoxTriState(); private: void moveSmoothly(QQuickWindow *window, const QPoint &from, const QPoint &to, int movements, @@ -607,6 +609,62 @@ void tst_Gifs::dial() gifRecorder.waitForFinish(); } +void tst_Gifs::checkBox() +{ + GifRecorder gifRecorder; + gifRecorder.setDataDirPath(dataDirPath); + gifRecorder.setOutputDir(outputDir); + gifRecorder.setRecordingDuration(5); + gifRecorder.setQmlFileName("qtquickcontrols2-checkbox.qml"); + + gifRecorder.start(); + + QQuickWindow *window = gifRecorder.window(); + QQuickItem *second = window->property("second").value(); + QVERIFY(second); + QQuickItem *third = window->property("third").value(); + QVERIFY(third); + + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + second->mapToScene(QPointF(second->width() / 2, second->height() / 2)).toPoint(), 400); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + third->mapToScene(QPointF(third->width() / 2, third->height() / 2)).toPoint(), 800); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + third->mapToScene(QPointF(third->width() / 2, third->height() / 2)).toPoint(), 800); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + second->mapToScene(QPointF(second->width() / 2, second->height() / 2)).toPoint(), 800); + + gifRecorder.waitForFinish(); +} + +void tst_Gifs::checkBoxTriState() +{ + GifRecorder gifRecorder; + gifRecorder.setDataDirPath(dataDirPath); + gifRecorder.setOutputDir(outputDir); + gifRecorder.setRecordingDuration(6); + gifRecorder.setQmlFileName("qtquickcontrols2-checkbox-tristate.qml"); + + gifRecorder.start(); + + QQuickWindow *window = gifRecorder.window(); + QQuickItem *english = window->property("english").value(); + QVERIFY(english); + QQuickItem *norwegian = window->property("norwegian").value(); + QVERIFY(norwegian); + + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + english->mapToScene(QPointF(english->width() / 2, english->height() / 2)).toPoint(), 1000); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + norwegian->mapToScene(QPointF(norwegian->width() / 2, norwegian->height() / 2)).toPoint(), 1000); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + norwegian->mapToScene(QPointF(norwegian->width() / 2, norwegian->height() / 2)).toPoint(), 1000); + QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, + english->mapToScene(QPointF(english->width() / 2, english->height() / 2)).toPoint(), 1000); + + gifRecorder.waitForFinish(); +} + QTEST_MAIN(tst_Gifs) #include "tst_gifs.moc" -- cgit v1.2.3