diff options
-rw-r--r-- | src/quickcontrols/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/quickcontrols/basic/CMakeLists.txt | 2 | ||||
-rw-r--r-- | tests/auto/quickcontrols/styleimports/tst_styleimports.cpp | 52 |
3 files changed, 54 insertions, 2 deletions
diff --git a/src/quickcontrols/CMakeLists.txt b/src/quickcontrols/CMakeLists.txt index 24a2ca8ca2..e5d8e68e39 100644 --- a/src/quickcontrols/CMakeLists.txt +++ b/src/quickcontrols/CMakeLists.txt @@ -12,8 +12,6 @@ qt_internal_add_qml_module(QuickControls2 DESIGNER_SUPPORTED CLASS_NAME QtQuickControls2Plugin PLUGIN_TARGET qtquickcontrols2plugin - IMPORTS - QtQuick.Controls.impl/auto OPTIONAL_IMPORTS QtQuick.Controls.Fusion/auto QtQuick.Controls.Material/auto diff --git a/src/quickcontrols/basic/CMakeLists.txt b/src/quickcontrols/basic/CMakeLists.txt index e45b6d09c0..4bc75288af 100644 --- a/src/quickcontrols/basic/CMakeLists.txt +++ b/src/quickcontrols/basic/CMakeLists.txt @@ -155,6 +155,8 @@ qt_internal_add_qml_module(qtquickcontrols2basicstyleplugin CLASS_NAME QtQuickControls2BasicStylePlugin DEPENDENCIES QtQuick/auto + IMPORTS + QtQuick.Controls.impl/auto PLUGIN_TARGET qtquickcontrols2basicstyleplugin NO_PLUGIN_OPTIONAL NO_GENERATE_PLUGIN_SOURCE diff --git a/tests/auto/quickcontrols/styleimports/tst_styleimports.cpp b/tests/auto/quickcontrols/styleimports/tst_styleimports.cpp index e2bb80fb4e..06e1e11c8c 100644 --- a/tests/auto/quickcontrols/styleimports/tst_styleimports.cpp +++ b/tests/auto/quickcontrols/styleimports/tst_styleimports.cpp @@ -13,6 +13,7 @@ #include <QtQuickControls2/qquickstyle.h> #include <QtQuickControls2/private/qquickstyle_p.h> #include <QtQuickControls2Impl/private/qquickiconlabel_p.h> +#include <QtQuickControlsTestUtils/private/qtest_quickcontrols_p.h> class tst_StyleImports : public QQmlDataTest { @@ -34,6 +35,9 @@ private slots: void fallbackStyleShouldNotOverwriteTheme_data(); void fallbackStyleShouldNotOverwriteTheme(); + + void attachedTypesAvailable_data(); + void attachedTypesAvailable(); }; tst_StyleImports::tst_StyleImports() @@ -241,6 +245,54 @@ void tst_StyleImports::fallbackStyleShouldNotOverwriteTheme() QCOMPARE(contentItem->color(), expectedContentItemColor); } +void tst_StyleImports::attachedTypesAvailable_data() +{ + QTest::addColumn<QString>("import"); + + // QtQuick.Controls import. + QTest::newRow("Controls") << ""; + + const QStringList styles = testStyles(); + for (const QString &styleImport : styles) + QTest::newRow(qPrintable(styleImport)) << styleImport; +} + +void tst_StyleImports::attachedTypesAvailable() +{ + QFETCH(QString, import); + + // If it's QtQuick.Controls, don't prepend anything. + if (!import.isEmpty()) + import.prepend(QLatin1Char('.')); + + // Should not warn about missing types. + QTest::failOnWarning(QRegularExpression(".?")); + + QQmlEngine engine; + QQmlComponent c(&engine); + c.setData(QString::fromLatin1(R"( + import QtQuick + import QtQuick.Controls%1 + + Item { + SplitView { + handle: Rectangle { + opacity: SplitHandle.hovered || SplitHandle.pressed ? 1.0 : 0.0 + } + Item {} // Need these to ensure the handle is actually created, otherwise we won't get warnings. + Item {} + } + + Dialog { + anchors.centerIn: Overlay.overlay + } + } + )").arg(import).toLatin1(), QUrl()); + QVERIFY2(c.isReady(), qPrintable(c.errorString())); + QScopedPointer<QObject> o(c.create()); + QVERIFY(!o.isNull()); +} + QTEST_MAIN(tst_StyleImports) #include "tst_styleimports.moc" |