diff options
author | Ulf Hermann <[email protected]> | 2022-12-20 08:21:57 +0100 |
---|---|---|
committer | Ulf Hermann <[email protected]> | 2022-12-22 03:57:04 +0100 |
commit | 4cbc25f37908be48af9c5e2024069c9bb2f88a16 (patch) | |
tree | 6686f58a91ed279dbc33db6ba52382a8f08b3c6f | |
parent | 0cd146b4b015d2ba79f258b27f3109b3e21e855a (diff) |
Controls: Move QtQuick.Controls.impl import to QtQuick.Controls.Basic
We want it to be available in all the individual styles, not only if you
import QtQuick.Controls.
Fixes: QTBUG-104768
Fixes: QTBUG-109299
Pick-to: 6.5
Change-Id: Id483ee9f721e0c820bed638702a4a8aced759063
Reviewed-by: Ulf Hermann <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
-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" |