diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-02 03:02:29 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-02 03:02:29 +0100 |
commit | 6f5bc03ecbf0e8233ae638a54457557c6c32cba2 (patch) | |
tree | 742032e0cdadb6328c180be35718ecf9dd9b7116 /tests | |
parent | 3725155f6c5cdfad0e99d232f09c7ae0d0de617f (diff) | |
parent | 9fdbdea176007ed7b470e317e9002aa77ddd4ead (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ibd3a8a111ce70643199c64f41143f332a34826f8
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/cursor/tst_cursor.cpp | 17 | ||||
-rw-r--r-- | tests/auto/qquickdrawer/data/topEdgeScreenEdge.qml | 78 | ||||
-rw-r--r-- | tests/auto/qquickdrawer/tst_qquickdrawer.cpp | 16 | ||||
-rw-r--r-- | tests/auto/qquickmenu/tst_qquickmenu.cpp | 31 | ||||
-rw-r--r-- | tests/manual/dialogs/CustomDialog.qml | 74 | ||||
-rw-r--r-- | tests/manual/dialogs/DialogLabel.qml | 60 | ||||
-rw-r--r-- | tests/manual/dialogs/Marker.qml | 68 | ||||
-rw-r--r-- | tests/manual/dialogs/dialogs.cpp | 63 | ||||
-rw-r--r-- | tests/manual/dialogs/dialogs.pro | 11 | ||||
-rw-r--r-- | tests/manual/dialogs/dialogs.qml | 247 | ||||
-rw-r--r-- | tests/manual/dialogs/qtquickcontrols2.conf | 6 |
11 files changed, 670 insertions, 1 deletions
diff --git a/tests/auto/cursor/tst_cursor.cpp b/tests/auto/cursor/tst_cursor.cpp index 0f24a29e..d59e7091 100644 --- a/tests/auto/cursor/tst_cursor.cpp +++ b/tests/auto/cursor/tst_cursor.cpp @@ -44,6 +44,11 @@ #include <QtQuickTemplates2/private/qquickscrollbar_p.h> #include <QtQuickTemplates2/private/qquicktextarea_p.h> +#if QT_CONFIG(cursor) +# include <QtGui/qscreen.h> +# include <QtGui/qcursor.h> +#endif + using namespace QQuickVisualTestUtil; class tst_cursor : public QQmlDataTest @@ -51,6 +56,7 @@ class tst_cursor : public QQmlDataTest Q_OBJECT private slots: + void init(); void controls_data(); void controls(); void editable(); @@ -58,6 +64,17 @@ private slots: void scrollBar(); }; +void tst_cursor::init() +{ +#if QT_CONFIG(cursor) + // Ensure mouse cursor was not left by previous tests where widgets + // will appear, as it could cause events and interfere with the tests. + const QScreen *screen = QGuiApplication::primaryScreen(); + const QRect availableGeometry = screen->availableGeometry(); + QCursor::setPos(availableGeometry.topLeft()); +#endif +} + void tst_cursor::controls_data() { QTest::addColumn<QString>("testFile"); diff --git a/tests/auto/qquickdrawer/data/topEdgeScreenEdge.qml b/tests/auto/qquickdrawer/data/topEdgeScreenEdge.qml new file mode 100644 index 00000000..02b5a10f --- /dev/null +++ b/tests/auto/qquickdrawer/data/topEdgeScreenEdge.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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.12 +import QtQuick.Controls 2.5 + +ApplicationWindow { + id: window + width: 400 + height: 400 + + property alias drawer: drawer + + header: Rectangle { + color: "red" + height: 40 + } + + Drawer { + id: drawer + width: window.width + height: window.height * 0.2 + parent: window.contentItem + edge: Qt.TopEdge + + Label { + anchors.centerIn: parent + text: "a drawer" + } + } +} diff --git a/tests/auto/qquickdrawer/tst_qquickdrawer.cpp b/tests/auto/qquickdrawer/tst_qquickdrawer.cpp index e3a6ccf2..816f9b67 100644 --- a/tests/auto/qquickdrawer/tst_qquickdrawer.cpp +++ b/tests/auto/qquickdrawer/tst_qquickdrawer.cpp @@ -109,6 +109,8 @@ private slots: void slider_data(); void slider(); + void topEdgeScreenEdge(); + private: struct TouchDeviceDeleter { @@ -1316,6 +1318,20 @@ void tst_QQuickDrawer::slider() QTest::touchEvent(window, touchDevice.data()).release(0, to); } +void tst_QQuickDrawer::topEdgeScreenEdge() +{ + QQuickApplicationHelper helper(this, QStringLiteral("topEdgeScreenEdge.qml")); + QQuickWindow *window = helper.window; + window->show(); + QVERIFY(QTest::qWaitForWindowActive(window)); + + QQuickDrawer *drawer = window->property("drawer").value<QQuickDrawer *>(); + QVERIFY(drawer); + + QVERIFY(QMetaObject::invokeMethod(drawer, "open")); + QTRY_COMPARE(drawer->position(), 1.0); +} + QTEST_QUICKCONTROLS_MAIN(tst_QQuickDrawer) #include "tst_qquickdrawer.moc" diff --git a/tests/auto/qquickmenu/tst_qquickmenu.cpp b/tests/auto/qquickmenu/tst_qquickmenu.cpp index a24305b7..e1f5d35f 100644 --- a/tests/auto/qquickmenu/tst_qquickmenu.cpp +++ b/tests/auto/qquickmenu/tst_qquickmenu.cpp @@ -316,9 +316,38 @@ void tst_QQuickMenu::contextMenuKeyboard() QCOMPARE(menu->currentIndex(), -1); QCOMPARE(menu->contentItem()->property("currentIndex"), QVariant(-1)); + // Enter/return should also work. + // Open the menu. menu->open(); QCOMPARE(visibleSpy.count(), 3); QVERIFY(menu->isVisible()); + // Give the first item focus. + QTest::keyClick(window, Qt::Key_Tab); + QVERIFY(firstItem->hasActiveFocus()); + QVERIFY(firstItem->hasVisualFocus()); + QVERIFY(firstItem->isHighlighted()); + QCOMPARE(firstItem->focusReason(), Qt::TabFocusReason); + QCOMPARE(menu->currentIndex(), 0); + QCOMPARE(menu->contentItem()->property("currentIndex"), QVariant(0)); + // Press enter. + QSignalSpy firstTriggeredSpy(firstItem, SIGNAL(triggered())); + QTest::keyClick(window, Qt::Key_Return); + QCOMPARE(firstTriggeredSpy.count(), 1); + QCOMPARE(visibleSpy.count(), 4); + QVERIFY(!menu->isVisible()); + QVERIFY(!window->overlay()->childItems().contains(menu->contentItem())); + QVERIFY(!firstItem->hasActiveFocus()); + QVERIFY(!firstItem->hasVisualFocus()); + QVERIFY(!firstItem->isHighlighted()); + QVERIFY(!secondItem->hasActiveFocus()); + QVERIFY(!secondItem->hasVisualFocus()); + QVERIFY(!secondItem->isHighlighted()); + QCOMPARE(menu->currentIndex(), -1); + QCOMPARE(menu->contentItem()->property("currentIndex"), QVariant(-1)); + + menu->open(); + QCOMPARE(visibleSpy.count(), 5); + QVERIFY(menu->isVisible()); QVERIFY(window->overlay()->childItems().contains(menu->contentItem()->parentItem())); QVERIFY(!firstItem->hasActiveFocus()); QVERIFY(!firstItem->hasVisualFocus()); @@ -393,7 +422,7 @@ void tst_QQuickMenu::contextMenuKeyboard() QVERIFY(!thirdItem->isHighlighted()); QTest::keyClick(window, Qt::Key_Escape); - QCOMPARE(visibleSpy.count(), 4); + QCOMPARE(visibleSpy.count(), 6); QVERIFY(!menu->isVisible()); } diff --git a/tests/manual/dialogs/CustomDialog.qml b/tests/manual/dialogs/CustomDialog.qml new file mode 100644 index 00000000..0e86fbb8 --- /dev/null +++ b/tests/manual/dialogs/CustomDialog.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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.Controls 2.12 + +Dialog { + id: root + x: previousDialog ? previousDialog.x + previousDialog.width + space : 0 + y: previousDialog ? previousDialog.y : 0 + closePolicy: Dialog.NoAutoClose + visible: true + + property Dialog previousDialog + property int space: dialogSpacing + + Marker { + parent: root.footer.contentItem + visible: visualizeDialogButtonBoxContentItem + text: "footer.contentItem" + } + Marker { + parent: root.footer + visible: visualizeDialogButtonBox + text: "footer" + border.color: "red" + } +} diff --git a/tests/manual/dialogs/DialogLabel.qml b/tests/manual/dialogs/DialogLabel.qml new file mode 100644 index 00000000..c4775aea --- /dev/null +++ b/tests/manual/dialogs/DialogLabel.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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.Controls 2.12 + +Label { + x: dialog.x + (dialog.width - width) / 2 + y: dialog.y - height + width: dialog.width + wrapMode: Label.Wrap + + property Dialog dialog +} diff --git a/tests/manual/dialogs/Marker.qml b/tests/manual/dialogs/Marker.qml new file mode 100644 index 00000000..439b50f2 --- /dev/null +++ b/tests/manual/dialogs/Marker.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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.12 + +Rectangle { + anchors.fill: parent + color: "transparent" + border.color: "darkorange" + + property alias text: label.text + + Text { + id: label + font.pixelSize: Qt.application.font.pixelSize * 0.6 + color: parent.border.color + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.margins: 4 + } +} diff --git a/tests/manual/dialogs/dialogs.cpp b/tests/manual/dialogs/dialogs.cpp new file mode 100644 index 00000000..73faa175 --- /dev/null +++ b/tests/manual/dialogs/dialogs.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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$ +** +****************************************************************************/ + +#include <QGuiApplication> +#include <QQmlApplicationEngine> + +int main(int argc, char *argv[]) +{ + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + engine.load(QUrl("qrc:/dialogs.qml")); + + return app.exec(); +} diff --git a/tests/manual/dialogs/dialogs.pro b/tests/manual/dialogs/dialogs.pro new file mode 100644 index 00000000..4863923f --- /dev/null +++ b/tests/manual/dialogs/dialogs.pro @@ -0,0 +1,11 @@ +TEMPLATE = app +TARGET = dialogs +QT += qml quickcontrols2 + +SOURCES += dialogs.cpp +RESOURCES += \ + qtquickcontrols2.conf \ + dialogs.qml \ + Marker.qml \ + CustomDialog.qml \ + DialogLabel.qml diff --git a/tests/manual/dialogs/dialogs.qml b/tests/manual/dialogs/dialogs.qml new file mode 100644 index 00000000..a3048c34 --- /dev/null +++ b/tests/manual/dialogs/dialogs.qml @@ -0,0 +1,247 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, 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.12 +import QtQuick.Controls 2.12 +import QtQuick.Layouts 1.12 + +ApplicationWindow { + id: window + width: 1200 + height: 800 + title: "Buttons" + visible: true + + property alias visualizeDialogButtonBoxContentItem: visualizeDialogButtonBoxContentItemMenuItem.checked + property alias visualizeDialogButtonBox: visualizeDialogButtonBoxMenuItem.checked + + property int dialogSpacing: 60 + + header: ToolBar { + RowLayout { + anchors.fill: parent + Item { + Layout.fillWidth: true + } + + ToolButton { + text: "Settings" + onClicked: settingsMenu.open() + + Menu { + id: settingsMenu + width: 400 + + MenuItem { + id: visualizeDialogButtonBoxContentItemMenuItem + text: "Visualize DialogButtonBox contentItem" + checkable: true + } + + MenuItem { + id: visualizeDialogButtonBoxMenuItem + text: "Visualize DialogButtonBox" + checkable: true + } + } + } + } + } + + + DialogLabel { + text: "implicit width" + dialog: dialogImplicitWidthNoButtons + width: 100 + } + CustomDialog { + id: dialogImplicitWidthNoButtons + x: dialogSpacing + y: dialogSpacing + space: 200 + } + + DialogLabel { + text: "title, implicit width" + dialog: dialogImplicitWidthTitleNoButtons + width: 150 + } + CustomDialog { + id: dialogImplicitWidthTitleNoButtons + y: dialogSpacing + title: "Test" + previousDialog: dialogImplicitWidthNoButtons + space: 200 + } + + DialogLabel { + text: "title, fixed width" + dialog: dialogFixedWidthTitleNoButtons + } + CustomDialog { + id: dialogFixedWidthTitleNoButtons + y: dialogSpacing + width: 300 + title: "Test" + previousDialog: dialogImplicitWidthTitleNoButtons + space: 200 + } + + + DialogLabel { + text: "one standard button, implicit width" + dialog: dialogImplicitWidthOneButton + } + CustomDialog { + id: dialogImplicitWidthOneButton + x: dialogSpacing + y: dialogFixedWidthTitleNoButtons.y + dialogFixedWidthTitleNoButtons.height + dialogSpacing + standardButtons: Dialog.Ok + } + + DialogLabel { + text: "two standard buttons, implicit width" + dialog: dialogImplicitWidthTwoButtons + } + CustomDialog { + id: dialogImplicitWidthTwoButtons + standardButtons: Dialog.Ok | Dialog.Cancel + previousDialog: dialogImplicitWidthOneButton + } + + DialogLabel { + text: "three standard buttons, implicit width" + dialog: dialogImplicitWidthThreeButtons + } + CustomDialog { + id: dialogImplicitWidthThreeButtons + standardButtons: Dialog.Apply | Dialog.RestoreDefaults | Dialog.Cancel + previousDialog: dialogImplicitWidthTwoButtons + } + + + DialogLabel { + text: "text, one standard button, implicit width" + dialog: dialogTextImplicitWidthOneButton + } + CustomDialog { + id: dialogTextImplicitWidthOneButton + x: dialogSpacing + y: dialogImplicitWidthThreeButtons.y + dialogImplicitWidthThreeButtons.height + dialogSpacing + standardButtons: Dialog.Ok + + Label { + text: "A Label" + } + } + + DialogLabel { + text: "text, two standard buttons, implicit width" + dialog: dialogTextImplicitWidthTwoButtons + } + CustomDialog { + id: dialogTextImplicitWidthTwoButtons + standardButtons: Dialog.Ok | Dialog.Cancel + previousDialog: dialogTextImplicitWidthOneButton + + Label { + text: "A Label" + } + } + + DialogLabel { + text: "text, three standard buttons, implicit width" + dialog: dialogTextImplicitWidthThreeButtons + } + CustomDialog { + id: dialogTextImplicitWidthThreeButtons + standardButtons: Dialog.Apply | Dialog.RestoreDefaults | Dialog.Cancel + previousDialog: dialogTextImplicitWidthTwoButtons + + Label { + text: "A Label" + } + } + + + DialogLabel { + text: "one standard button, fixed width (300)" + dialog: dialogFixedWidthOneButton + } + CustomDialog { + id: dialogFixedWidthOneButton + x: dialogSpacing + y: dialogTextImplicitWidthThreeButtons.y + dialogTextImplicitWidthThreeButtons.height + dialogSpacing + width: 300 + standardButtons: Dialog.Ok + } + + DialogLabel { + text: "two standard buttons, fixed width (300)" + dialog: dialogFixedWidthTwoButtons + } + CustomDialog { + id: dialogFixedWidthTwoButtons + width: 300 + standardButtons: Dialog.Ok | Dialog.Cancel + previousDialog: dialogFixedWidthOneButton + } + + DialogLabel { + text: "three standard buttons, fixed width (300)" + dialog: dialogFixedWidthThreeButtons + } + CustomDialog { + id: dialogFixedWidthThreeButtons + width: 300 + standardButtons: Dialog.Apply | Dialog.RestoreDefaults | Dialog.Cancel + previousDialog: dialogFixedWidthTwoButtons + } +} diff --git a/tests/manual/dialogs/qtquickcontrols2.conf b/tests/manual/dialogs/qtquickcontrols2.conf new file mode 100644 index 00000000..7ac31807 --- /dev/null +++ b/tests/manual/dialogs/qtquickcontrols2.conf @@ -0,0 +1,6 @@ +[Controls] +Style=Default +;Style=Fusion +;Style=Imagine +;Style=Material +;Style=Universal |