From a0f0b4f65e96aecc9949d3089a283cdfaeefbb3b Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Fri, 11 Sep 2020 16:18:50 +0200 Subject: Support compile-time style selection By allowing importing styles without first importing QtQuick.Controls, which does runtime style selection. [ChangeLog][Styles] It's now possible to select a style at compile-time by importing that style explicitly instead of QtQuick.Controls. This avoids the need to do run-time style selection and hence deploy the QtQuick.Controls plugin with the application. Change-Id: I666d6dc7727fffd2c7b05743855f2086f076465a Fixes: QTBUG-86284 Reviewed-by: Ulf Hermann --- tests/auto/auto.pro | 2 + tests/auto/shared/visualtestutil.h | 10 ++- .../data/importBasicStyleWithoutControls.qml | 57 --------------- .../data/importFusionStyleWithoutControls.qml | 57 --------------- .../data/importImagineStyleWithoutControls.qml | 57 --------------- .../data/importMaterialStyleWithoutControls.qml | 57 --------------- .../data/importUniversalStyleWithoutControls.qml | 57 --------------- .../data/importWindowsStyleWithoutControls.qml | 57 --------------- .../data/importmacOSStyleWithoutControls.qml | 57 --------------- tests/auto/styleimports/tst_styleimports.cpp | 41 ----------- .../styleimportscompiletimematerial/CMakeLists.txt | 62 ++++++++++++++++ .../data/importMaterialStyleWithoutControls.qml | 64 +++++++++++++++++ .../styleimportscompiletimematerial.pro | 15 ++++ .../tst_styleimportscompiletimematerial.cpp | 77 ++++++++++++++++++++ .../styleimportscompiletimeqmlonly/CMakeLists.txt | 62 ++++++++++++++++ .../data/QmlOnly/Button.qml | 83 ++++++++++++++++++++++ .../data/QmlOnly/qmldir | 3 + .../data/importQmlOnlyStyleWithoutControls.qml | 64 +++++++++++++++++ .../styleimportscompiletimeqmlonly.pro | 17 +++++ .../tst_styleimportscompiletimeqmlonly.cpp | 74 +++++++++++++++++++ 20 files changed, 530 insertions(+), 443 deletions(-) delete mode 100644 tests/auto/styleimports/data/importBasicStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importFusionStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importImagineStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importMaterialStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importUniversalStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importWindowsStyleWithoutControls.qml delete mode 100644 tests/auto/styleimports/data/importmacOSStyleWithoutControls.qml create mode 100644 tests/auto/styleimportscompiletimematerial/CMakeLists.txt create mode 100644 tests/auto/styleimportscompiletimematerial/data/importMaterialStyleWithoutControls.qml create mode 100644 tests/auto/styleimportscompiletimematerial/styleimportscompiletimematerial.pro create mode 100644 tests/auto/styleimportscompiletimematerial/tst_styleimportscompiletimematerial.cpp create mode 100644 tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt create mode 100644 tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/Button.qml create mode 100644 tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/qmldir create mode 100644 tests/auto/styleimportscompiletimeqmlonly/data/importQmlOnlyStyleWithoutControls.qml create mode 100644 tests/auto/styleimportscompiletimeqmlonly/styleimportscompiletimeqmlonly.pro create mode 100644 tests/auto/styleimportscompiletimeqmlonly/tst_styleimportscompiletimeqmlonly.cpp (limited to 'tests') diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 28d00c2a..d64c4b67 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -30,4 +30,6 @@ SUBDIRS += \ sanity \ snippets \ styleimports \ + styleimportscompiletimematerial \ + styleimportscompiletimeqmlonly \ translation diff --git a/tests/auto/shared/visualtestutil.h b/tests/auto/shared/visualtestutil.h index cbc0bade..78c625ea 100644 --- a/tests/auto/shared/visualtestutil.h +++ b/tests/auto/shared/visualtestutil.h @@ -118,9 +118,14 @@ namespace QQuickVisualTestUtil class QQuickApplicationHelper { public: - QQuickApplicationHelper(QQmlDataTest *testCase, const QString &testFilePath) : - component(&engine) + QQuickApplicationHelper(QQmlDataTest *testCase, const QString &testFilePath, + const QStringList &qmlImportPaths = QStringList()) { + for (const auto &path : qmlImportPaths) + engine.addImportPath(path); + + QQmlComponent component(&engine); + component.loadUrl(testCase->testFileUrl(testFilePath)); QObject *rootObject = component.create(); cleanup.reset(rootObject); @@ -152,7 +157,6 @@ namespace QQuickVisualTestUtil } QQmlEngine engine; - QQmlComponent component; QScopedPointer cleanup; QQuickApplicationWindow *appWindow = nullptr; QQuickWindow *window = nullptr; diff --git a/tests/auto/styleimports/data/importBasicStyleWithoutControls.qml b/tests/auto/styleimports/data/importBasicStyleWithoutControls.qml deleted file mode 100644 index 40e02666..00000000 --- a/tests/auto/styleimports/data/importBasicStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Basic - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importFusionStyleWithoutControls.qml b/tests/auto/styleimports/data/importFusionStyleWithoutControls.qml deleted file mode 100644 index ba61406f..00000000 --- a/tests/auto/styleimports/data/importFusionStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Fusion - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importImagineStyleWithoutControls.qml b/tests/auto/styleimports/data/importImagineStyleWithoutControls.qml deleted file mode 100644 index cffec326..00000000 --- a/tests/auto/styleimports/data/importImagineStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Imagine - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importMaterialStyleWithoutControls.qml b/tests/auto/styleimports/data/importMaterialStyleWithoutControls.qml deleted file mode 100644 index b195f365..00000000 --- a/tests/auto/styleimports/data/importMaterialStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Material - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importUniversalStyleWithoutControls.qml b/tests/auto/styleimports/data/importUniversalStyleWithoutControls.qml deleted file mode 100644 index 9ff52d4f..00000000 --- a/tests/auto/styleimports/data/importUniversalStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Universal - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importWindowsStyleWithoutControls.qml b/tests/auto/styleimports/data/importWindowsStyleWithoutControls.qml deleted file mode 100644 index 71cb18ee..00000000 --- a/tests/auto/styleimports/data/importWindowsStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.Windows - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/data/importmacOSStyleWithoutControls.qml b/tests/auto/styleimports/data/importmacOSStyleWithoutControls.qml deleted file mode 100644 index 5e91c29f..00000000 --- a/tests/auto/styleimports/data/importmacOSStyleWithoutControls.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 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.macOS - -ApplicationWindow { - title: "Test Application Window" - width: 400 - height: 400 -} diff --git a/tests/auto/styleimports/tst_styleimports.cpp b/tests/auto/styleimports/tst_styleimports.cpp index 408f06c3..5e525b0f 100644 --- a/tests/auto/styleimports/tst_styleimports.cpp +++ b/tests/auto/styleimports/tst_styleimports.cpp @@ -61,9 +61,6 @@ private slots: void platformSelectors(); - void importStyleWithoutControls_data(); - void importStyleWithoutControls(); - void fallbackStyleShouldNotOverwriteTheme_data(); void fallbackStyleShouldNotOverwriteTheme(); }; @@ -208,44 +205,6 @@ void tst_StyleImports::platformSelectors() #endif } -void tst_StyleImports::importStyleWithoutControls_data() -{ - QTest::addColumn("style"); - - const auto builtInStyles = QQuickStylePrivate::builtInStyles(); - for (const auto &styleName : builtInStyles) - QTest::addRow(qPrintable(styleName)) << styleName; -} - -// Tests that warnings are printed when trying to import a specific style without first importing QtQuick.Controls. -void tst_StyleImports::importStyleWithoutControls() -{ - QFETCH(QString, style); - - QQmlApplicationEngine engine; - const QUrl url(testFileUrl(QString::fromLatin1("import%1StyleWithoutControls.qml").arg(style))); - bool success = false; - - // Account for extra warnings for fallback styles. - QTest::ignoreMessage(QtWarningMsg, QRegularExpression("QtQuick.Controls must be imported before importing.*Basic")); - if (style == QLatin1String("macOS")) - QTest::ignoreMessage(QtWarningMsg, QRegularExpression("QtQuick.Controls must be imported before importing.*Fusion")); - - // Account for the warning for the current style. - if (style != QLatin1String("Basic")) - QTest::ignoreMessage(QtWarningMsg, QRegularExpression("QtQuick.Controls must be imported before importing.*" + style)); - - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - this, [url, &success](QObject *obj, const QUrl &objUrl) { - if (url == objUrl) - success = obj; - }, Qt::QueuedConnection); - - engine.load(url); - // It should load, but with warnings. - QTRY_VERIFY(success); -} - void tst_StyleImports::fallbackStyleShouldNotOverwriteTheme_data() { QTest::addColumn("style"); diff --git a/tests/auto/styleimportscompiletimematerial/CMakeLists.txt b/tests/auto/styleimportscompiletimematerial/CMakeLists.txt new file mode 100644 index 00000000..b5910e92 --- /dev/null +++ b/tests/auto/styleimportscompiletimematerial/CMakeLists.txt @@ -0,0 +1,62 @@ +# Generated from styleimports.pro. + +##################################################################### +## tst_styleimports Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + data/*) +list(APPEND test_data ${test_data_glob}) + +qt_add_test(tst_styleimports + SOURCES + ../shared/qtest_quickcontrols.h + ../shared/util.cpp ../shared/util.h + ../shared/visualtestutil.cpp ../shared/visualtestutil.h + tst_styleimports.cpp + DEFINES + QQC2_IMPORT_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/imports\\\" + PUBLIC_LIBRARIES + Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate + Qt::QmlPrivate + Qt::QuickControls2 + Qt::QuickControls2Private + Qt::QuickPrivate + Qt::QuickTemplates2Private + Qt::TestPrivate + TESTDATA ${test_data} +) + +# Resources: +set(qmake_resourcestyle_resource_files + "ResourceStyle/Button.qml" + "ResourceStyle/qmldir" +) + +qt_add_resource(tst_styleimports "qmake_resourcestyle" + PREFIX + "/" + FILES + ${qmake_resourcestyle_resource_files} +) + + +#### Keys ignored in scope 1:.:.:styleimports.pro:: +# OTHER_FILES = "data/*.qml" "data/qmldir" "data/FileSystemStyle/*.qml" "data/FileSystemStyle/qmldir" "data/PlatformStyle/*.qml" "data/PlatformStyle/+linux/*.qml" "data/PlatformStyle/+macos/*.qml" "data/PlatformStyle/+windows/*.qml" "data/PlatformStyle/qmldir" + +## Scopes: +##################################################################### + +qt_extend_target(tst_styleimports CONDITION ANDROID OR IOS + DEFINES + QT_QMLTEST_DATADIR=\\\":/data\\\" +) + +qt_extend_target(tst_styleimports CONDITION NOT ANDROID AND NOT IOS + DEFINES + QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\" +) diff --git a/tests/auto/styleimportscompiletimematerial/data/importMaterialStyleWithoutControls.qml b/tests/auto/styleimportscompiletimematerial/data/importMaterialStyleWithoutControls.qml new file mode 100644 index 00000000..7cb4fd58 --- /dev/null +++ b/tests/auto/styleimportscompiletimematerial/data/importMaterialStyleWithoutControls.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2020 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.Material + +ApplicationWindow { + title: "Test Application Window" + width: 400 + height: 400 + + property alias button: button + + Button { + id: button + text: "Material Button" + } +} diff --git a/tests/auto/styleimportscompiletimematerial/styleimportscompiletimematerial.pro b/tests/auto/styleimportscompiletimematerial/styleimportscompiletimematerial.pro new file mode 100644 index 00000000..163f6bab --- /dev/null +++ b/tests/auto/styleimportscompiletimematerial/styleimportscompiletimematerial.pro @@ -0,0 +1,15 @@ +CONFIG += testcase +TARGET = tst_styleimportscompiletimematerial +SOURCES += tst_styleimportscompiletimematerial.cpp + +macos:CONFIG -= app_bundle + +QT += testlib core-private gui-private qml-private quick-private quickcontrols2-private quicktemplates2-private + +include (../shared/util.pri) + +TESTDATA = data/* + +OTHER_FILES += \ + data/*.qml + diff --git a/tests/auto/styleimportscompiletimematerial/tst_styleimportscompiletimematerial.cpp b/tests/auto/styleimportscompiletimematerial/tst_styleimportscompiletimematerial.cpp new file mode 100644 index 00000000..c0f88b31 --- /dev/null +++ b/tests/auto/styleimportscompiletimematerial/tst_styleimportscompiletimematerial.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2020 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:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../shared/util.h" +#include "../shared/visualtestutil.h" + +using namespace QQuickVisualTestUtil; + +class tst_StyleImportsCompileTimeMaterial : public QQmlDataTest +{ + Q_OBJECT + +private slots: + void importMaterialStyleWithoutControls(); +}; + +void tst_StyleImportsCompileTimeMaterial::importMaterialStyleWithoutControls() +{ + QQuickApplicationHelper helper(this, QLatin1String("importMaterialStyleWithoutControls.qml")); + QVERIFY2(helper.ready, helper.failureMessage()); + + auto button = helper.window->property("button").value(); + QVERIFY(button); + // The Material style sets a size 14 font for Button. + QCOMPARE(button->font().pixelSize(), 14); + const QTypeRevision latestControlsRevision = QQmlMetaType::latestModuleVersion(QLatin1String("QtQuick.Controls")); + QVERIFY2(!latestControlsRevision.isValid(), "QtQuick.Controls should not be imported when using compile-time style selection"); +} + +QTEST_MAIN(tst_StyleImportsCompileTimeMaterial) + +#include "tst_styleimportscompiletimematerial.moc" diff --git a/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt b/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt new file mode 100644 index 00000000..b5910e92 --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/CMakeLists.txt @@ -0,0 +1,62 @@ +# Generated from styleimports.pro. + +##################################################################### +## tst_styleimports Test: +##################################################################### + +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + data/*) +list(APPEND test_data ${test_data_glob}) + +qt_add_test(tst_styleimports + SOURCES + ../shared/qtest_quickcontrols.h + ../shared/util.cpp ../shared/util.h + ../shared/visualtestutil.cpp ../shared/visualtestutil.h + tst_styleimports.cpp + DEFINES + QQC2_IMPORT_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../src/imports\\\" + PUBLIC_LIBRARIES + Qt::CorePrivate + Qt::Gui + Qt::GuiPrivate + Qt::QmlPrivate + Qt::QuickControls2 + Qt::QuickControls2Private + Qt::QuickPrivate + Qt::QuickTemplates2Private + Qt::TestPrivate + TESTDATA ${test_data} +) + +# Resources: +set(qmake_resourcestyle_resource_files + "ResourceStyle/Button.qml" + "ResourceStyle/qmldir" +) + +qt_add_resource(tst_styleimports "qmake_resourcestyle" + PREFIX + "/" + FILES + ${qmake_resourcestyle_resource_files} +) + + +#### Keys ignored in scope 1:.:.:styleimports.pro:: +# OTHER_FILES = "data/*.qml" "data/qmldir" "data/FileSystemStyle/*.qml" "data/FileSystemStyle/qmldir" "data/PlatformStyle/*.qml" "data/PlatformStyle/+linux/*.qml" "data/PlatformStyle/+macos/*.qml" "data/PlatformStyle/+windows/*.qml" "data/PlatformStyle/qmldir" + +## Scopes: +##################################################################### + +qt_extend_target(tst_styleimports CONDITION ANDROID OR IOS + DEFINES + QT_QMLTEST_DATADIR=\\\":/data\\\" +) + +qt_extend_target(tst_styleimports CONDITION NOT ANDROID AND NOT IOS + DEFINES + QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\" +) diff --git a/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/Button.qml b/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/Button.qml new file mode 100644 index 00000000..73d94c1c --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/Button.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2020 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 +import QtQuick.Templates as T + +T.Button { + id: control + + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding) + + padding: 6 + horizontalPadding: padding + 2 + spacing: 6 + font.pixelSize: 8 + + contentItem: T.Label { + text: control.text + font: control.font + color: control.checked || control.highlighted ? control.palette.brightText : + control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText + verticalAlignment: T.Label.AlignVCenter + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 40 + visible: !control.flat || control.down || control.checked || control.highlighted + color: "#ccc" + border.color: control.palette.highlight + border.width: control.visualFocus ? 2 : 0 + } +} diff --git a/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/qmldir b/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/qmldir new file mode 100644 index 00000000..5e60f095 --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/data/QmlOnly/qmldir @@ -0,0 +1,3 @@ +module QmlOnly +Button 1.0 Button.qml +import QtQuick.Controls.Basic diff --git a/tests/auto/styleimportscompiletimeqmlonly/data/importQmlOnlyStyleWithoutControls.qml b/tests/auto/styleimportscompiletimeqmlonly/data/importQmlOnlyStyleWithoutControls.qml new file mode 100644 index 00000000..027d5636 --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/data/importQmlOnlyStyleWithoutControls.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2020 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 QmlOnly + +ApplicationWindow { + title: "Test Application Window" + width: 400 + height: 400 + + property alias button: button + + Button { + id: button + text: "QmlOnly Button" + } +} diff --git a/tests/auto/styleimportscompiletimeqmlonly/styleimportscompiletimeqmlonly.pro b/tests/auto/styleimportscompiletimeqmlonly/styleimportscompiletimeqmlonly.pro new file mode 100644 index 00000000..3f3189c6 --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/styleimportscompiletimeqmlonly.pro @@ -0,0 +1,17 @@ +CONFIG += testcase +TARGET = tst_styleimportscompiletimeqmlonly +SOURCES += tst_styleimportscompiletimeqmlonly.cpp + +macos:CONFIG -= app_bundle + +QT += testlib core-private gui-private qml-private quick-private quickcontrols2-private quicktemplates2-private + +include (../shared/util.pri) + +TESTDATA = data/* + +OTHER_FILES += \ + data/*.qml \ + data/QmlOnly/*.qml \ + data/QmlOnly/qmldir + diff --git a/tests/auto/styleimportscompiletimeqmlonly/tst_styleimportscompiletimeqmlonly.cpp b/tests/auto/styleimportscompiletimeqmlonly/tst_styleimportscompiletimeqmlonly.cpp new file mode 100644 index 00000000..7fd41ed9 --- /dev/null +++ b/tests/auto/styleimportscompiletimeqmlonly/tst_styleimportscompiletimeqmlonly.cpp @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2020 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:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../shared/util.h" +#include "../shared/visualtestutil.h" + +using namespace QQuickVisualTestUtil; + +class tst_StyleImportsCompileTimeQmlOnly : public QQmlDataTest +{ + Q_OBJECT + +private slots: + void importQmlOnlyStyleWithoutControls(); +}; + +void tst_StyleImportsCompileTimeQmlOnly::importQmlOnlyStyleWithoutControls() +{ + QQuickApplicationHelper helper(this, + QLatin1String("importQmlOnlyStyleWithoutControls.qml"), QStringList() << dataDirectory()); + QVERIFY2(helper.ready, helper.failureMessage()); + + auto button = helper.window->property("button").value(); + QVERIFY(button); + QCOMPARE(button->font().pixelSize(), 8); +} + +QTEST_MAIN(tst_StyleImportsCompileTimeQmlOnly) + +#include "tst_styleimportscompiletimeqmlonly.moc" -- cgit v1.2.3