aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/.prev_CMakeLists.txt7
-rw-r--r--src/imports/CMakeLists.txt1
-rw-r--r--src/imports/controls/.prev_CMakeLists.txt2
-rw-r--r--src/imports/controls/CMakeLists.txt2
-rw-r--r--src/imports/controls/default/.prev_CMakeLists.txt2
-rw-r--r--src/imports/controls/default/CMakeLists.txt2
-rw-r--r--src/imports/controls/default/impl/CMakeLists.txt3
-rw-r--r--src/imports/controls/default/qtquickcontrols2defaultstyleplugin.cpp12
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp12
-rw-r--r--src/imports/controls/imagine/impl/CMakeLists.txt2
-rw-r--r--src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp12
-rw-r--r--src/imports/controls/macos/.prev_CMakeLists.txt100
-rw-r--r--src/imports/controls/macos/qtquickcontrols2macosstyleplugin.cpp5
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp12
-rw-r--r--src/imports/controls/qtquickcontrols2plugin.cpp17
-rw-r--r--src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp12
-rw-r--r--src/imports/controls/windows/.prev_CMakeLists.txt92
-rw-r--r--src/imports/controls/windows/CMakeLists.txt4
-rw-r--r--src/imports/controls/windows/qtquickcontrols2windowsstyleplugin.cpp5
-rw-r--r--src/imports/controlsimpl/.prev_CMakeLists.txt2
-rw-r--r--src/imports/controlsimpl/CMakeLists.txt2
-rw-r--r--src/imports/nativestyle/qtquickcontrols2nativestyleplugin.cpp10
-rw-r--r--src/imports/templates/.prev_CMakeLists.txt2
-rw-r--r--src/imports/templates/CMakeLists.txt2
-rw-r--r--src/quickcontrols2/qquickstyle.cpp3
-rw-r--r--src/quickcontrols2/qquickstyleplugin.cpp20
-rw-r--r--src/quickcontrols2/qquickstyleplugin_p.h3
-rw-r--r--tests/auto/styleimports/CMakeLists.txt11
-rw-r--r--tests/auto/styleimports/data/applicationWindowWithButton.qml (renamed from tests/auto/styleimports/data/platformSelectors.qml)0
-rw-r--r--tests/auto/styleimports/resources/ResourceStyle/Button.qml9
-rw-r--r--tests/auto/styleimports/resources/ResourceStyle/qmldir (renamed from tests/auto/styleimports/ResourceStyle/qmldir)0
-rw-r--r--tests/auto/styleimports/styleimports.pro7
-rw-r--r--tests/auto/styleimports/tst_styleimports.cpp47
-rw-r--r--tests/manual/nativestyle/main.cpp2
34 files changed, 317 insertions, 107 deletions
diff --git a/src/imports/.prev_CMakeLists.txt b/src/imports/.prev_CMakeLists.txt
index 473471c2..e6210be9 100644
--- a/src/imports/.prev_CMakeLists.txt
+++ b/src/imports/.prev_CMakeLists.txt
@@ -4,6 +4,7 @@ add_subdirectory(controls)
add_subdirectory(controlsimpl)
add_subdirectory(platform)
add_subdirectory(templates)
+add_subdirectory(nativestyle)
add_subdirectory(controls/default)
add_subdirectory(controls/default/impl)
add_subdirectory(controls/fusion)
@@ -14,3 +15,9 @@ add_subdirectory(controls/material)
add_subdirectory(controls/material/impl)
add_subdirectory(controls/universal)
add_subdirectory(controls/universal/impl)
+if(MACOS)
+ add_subdirectory(controls/macos)
+endif()
+if(WIN32)
+ add_subdirectory(controls/windows)
+endif()
diff --git a/src/imports/CMakeLists.txt b/src/imports/CMakeLists.txt
index fbd1d1d0..e6210be9 100644
--- a/src/imports/CMakeLists.txt
+++ b/src/imports/CMakeLists.txt
@@ -15,7 +15,6 @@ add_subdirectory(controls/material)
add_subdirectory(controls/material/impl)
add_subdirectory(controls/universal)
add_subdirectory(controls/universal/impl)
-
if(MACOS)
add_subdirectory(controls/macos)
endif()
diff --git a/src/imports/controls/.prev_CMakeLists.txt b/src/imports/controls/.prev_CMakeLists.txt
index ca2ddb43..b927521b 100644
--- a/src/imports/controls/.prev_CMakeLists.txt
+++ b/src/imports/controls/.prev_CMakeLists.txt
@@ -9,8 +9,6 @@ qt_add_qml_module(qtquickcontrols2plugin
VERSION "${CMAKE_PROJECT_VERSION}"
DESIGNER_SUPPORTED
CLASSNAME QtQuickControls2Plugin
- DEPENDENCIES
- QtQuick.Templates/2.5
SKIP_TYPE_REGISTRATION
IMPORTS
QtQuick.Controls.impl/auto
diff --git a/src/imports/controls/CMakeLists.txt b/src/imports/controls/CMakeLists.txt
index 4e48373e..8a7f6cfd 100644
--- a/src/imports/controls/CMakeLists.txt
+++ b/src/imports/controls/CMakeLists.txt
@@ -10,8 +10,6 @@ qt_add_qml_module(qtquickcontrols2plugin
VERSION "6.0" # special case
DESIGNER_SUPPORTED
CLASSNAME QtQuickControls2Plugin
- DEPENDENCIES
- QtQuick.Templates/2.5
SKIP_TYPE_REGISTRATION
IMPORTS
QtQuick.Controls.impl/auto
diff --git a/src/imports/controls/default/.prev_CMakeLists.txt b/src/imports/controls/default/.prev_CMakeLists.txt
index 608f81b6..9a37f29c 100644
--- a/src/imports/controls/default/.prev_CMakeLists.txt
+++ b/src/imports/controls/default/.prev_CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquickcontrols2defaultstyleplugin
URI "QtQuick.Controls.Default"
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QtQuickControls2DefaultStylePlugin
- DEPENDENCIES
- QtQuick.Controls/2.5
GENERATE_QMLTYPES
SOURCES
qquickdefaultstyle.cpp qquickdefaultstyle_p.h
diff --git a/src/imports/controls/default/CMakeLists.txt b/src/imports/controls/default/CMakeLists.txt
index 336d04c9..f7ce5d10 100644
--- a/src/imports/controls/default/CMakeLists.txt
+++ b/src/imports/controls/default/CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquickcontrols2defaultstyleplugin
URI "QtQuick.Controls.Default"
VERSION "6.0" # special case
CLASSNAME QtQuickControls2DefaultStylePlugin
- DEPENDENCIES
- QtQuick.Controls/2.5
GENERATE_QMLTYPES
SOURCES
qquickdefaultstyle.cpp qquickdefaultstyle_p.h
diff --git a/src/imports/controls/default/impl/CMakeLists.txt b/src/imports/controls/default/impl/CMakeLists.txt
index d90ef86b..e6258d13 100644
--- a/src/imports/controls/default/impl/CMakeLists.txt
+++ b/src/imports/controls/default/impl/CMakeLists.txt
@@ -8,9 +8,6 @@ qt_add_qml_module(qtquickcontrols2defaultstyleimplplugin
URI "QtQuick.Controls.Default.impl"
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QtQuickControls2DefaultStyleImplPlugin
- DEPENDENCIES
- QtQuick.Templates/6.0
- QtQuick.Controls/6.0
SKIP_TYPE_REGISTRATION
GENERATE_QMLTYPES
SOURCES
diff --git a/src/imports/controls/default/qtquickcontrols2defaultstyleplugin.cpp b/src/imports/controls/default/qtquickcontrols2defaultstyleplugin.cpp
index 6b4b3bc3..c7259a29 100644
--- a/src/imports/controls/default/qtquickcontrols2defaultstyleplugin.cpp
+++ b/src/imports/controls/default/qtquickcontrols2defaultstyleplugin.cpp
@@ -51,8 +51,7 @@ public:
QtQuickControls2DefaultStylePlugin(QObject *parent = nullptr);
QString name() const override;
-
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QQuickDefaultTheme theme;
};
@@ -66,14 +65,9 @@ QString QtQuickControls2DefaultStylePlugin::name() const
return QStringLiteral("Default");
}
-void QtQuickControls2DefaultStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2DefaultStylePlugin::initializeTheme(QQuickTheme *theme)
{
- QQuickStylePlugin::registerTypes(uri);
-
- if (!QQuickTheme::instance())
- return;
-
- theme.initialize(QQuickTheme::instance());
+ this->theme.initialize(theme);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
index 59d99afc..fcaa959e 100644
--- a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
+++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
@@ -52,8 +52,7 @@ public:
QtQuickControls2FusionStylePlugin(QObject *parent = nullptr);
QString name() const override;
-
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QQuickFusionTheme theme;
};
@@ -67,14 +66,9 @@ QString QtQuickControls2FusionStylePlugin::name() const
return QStringLiteral("Fusion");
}
-void QtQuickControls2FusionStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2FusionStylePlugin::initializeTheme(QQuickTheme *theme)
{
- QQuickStylePlugin::registerTypes(uri);
-
- if (!QQuickTheme::instance())
- return;
-
- theme.initialize(QQuickTheme::instance());
+ this->theme.initialize(theme);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/imagine/impl/CMakeLists.txt b/src/imports/controls/imagine/impl/CMakeLists.txt
index a2e38302..ea75184a 100644
--- a/src/imports/controls/imagine/impl/CMakeLists.txt
+++ b/src/imports/controls/imagine/impl/CMakeLists.txt
@@ -58,7 +58,7 @@ set(qml_files
"OpacityMask.qml"
)
set_source_files_properties(OpacityMask.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0"
+ QT_QML_SOURCE_VERSION "6.0"
)
qt6_target_qml_files(qtquickcontrols2imaginestyleimplplugin
diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
index 336064dd..16c3f0d7 100644
--- a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
+++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
@@ -53,8 +53,7 @@ public:
QtQuickControls2ImagineStylePlugin(QObject *parent = nullptr);
QString name() const override;
-
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QQuickImagineTheme theme;
};
@@ -68,14 +67,9 @@ QString QtQuickControls2ImagineStylePlugin::name() const
return QStringLiteral("Imagine");
}
-void QtQuickControls2ImagineStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2ImagineStylePlugin::initializeTheme(QQuickTheme *theme)
{
- QQuickStylePlugin::registerTypes(uri);
-
- if (!QQuickTheme::instance())
- return;
-
- theme.initialize(QQuickTheme::instance());
+ this->theme.initialize(theme);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/macos/.prev_CMakeLists.txt b/src/imports/controls/macos/.prev_CMakeLists.txt
new file mode 100644
index 00000000..a8fca854
--- /dev/null
+++ b/src/imports/controls/macos/.prev_CMakeLists.txt
@@ -0,0 +1,100 @@
+# Generated from macos.pro.
+
+#####################################################################
+## qtquickcontrols2macosstyleplugin Plugin:
+#####################################################################
+
+qt_add_qml_module(qtquickcontrols2macosstyleplugin
+ URI "QtQuick.Controls.macOS"
+ VERSION "${CMAKE_PROJECT_VERSION}"
+ CLASSNAME QtQuickControls2MacOSStylePlugin
+ IMPORTS
+ QtQuick.Controls.Fusion/auto
+ GENERATE_QMLTYPES
+ SOURCES
+ qtquickcontrols2macosstyleplugin.cpp
+ DEFINES
+ QT_NO_CAST_FROM_ASCII
+ QT_NO_CAST_TO_ASCII
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QmlPrivate
+ Qt::QuickControls2Private
+ Qt::QuickPrivate
+ Qt::QuickTemplates2Private
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::QuickControls2
+ Qt::QuickTemplates2
+)
+
+#### Keys ignored in scope 1:.:.:macos.pro:<TRUE>:
+# OTHER_FILES = "qmldir" "$$QML_FILES"
+# QML_IMPORT_NAME = "QtQuick.Controls.macOS"
+# QML_IMPORT_VERSION = "$$QT_VERSION"
+# TARGETPATH = "QtQuick/Controls/macOS"
+# _REQUIREMENTS = "qtConfig(quickcontrols2-macos)"
+
+set(qml_files
+ "Button.qml"
+ "Slider.qml"
+ "GroupBox.qml"
+ "CheckBox.qml"
+ "RadioButton.qml"
+ "SpinBox.qml"
+ "TextField.qml"
+ "Frame.qml"
+ "TextArea.qml"
+ "ComboBox.qml"
+ "ScrollBar.qml"
+ "ProgressBar.qml"
+ "Dial.qml"
+)
+set_source_files_properties(Button.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(Slider.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(GroupBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(CheckBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(RadioButton.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(SpinBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(TextField.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(Frame.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(TextArea.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(ComboBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(ScrollBar.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(ProgressBar.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(Dial.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+
+qt6_target_qml_files(qtquickcontrols2macosstyleplugin
+ FILES
+ ${qml_files}
+)
diff --git a/src/imports/controls/macos/qtquickcontrols2macosstyleplugin.cpp b/src/imports/controls/macos/qtquickcontrols2macosstyleplugin.cpp
index a6a26b89..f97414ce 100644
--- a/src/imports/controls/macos/qtquickcontrols2macosstyleplugin.cpp
+++ b/src/imports/controls/macos/qtquickcontrols2macosstyleplugin.cpp
@@ -46,8 +46,8 @@ class QtQuickControls2MacOSStylePlugin : public QQuickStylePlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- void registerTypes(const char *uri) override;
QString name() const override;
+ void initializeTheme(QQuickTheme *theme) override;
};
QString QtQuickControls2MacOSStylePlugin::name() const
@@ -55,9 +55,8 @@ QString QtQuickControls2MacOSStylePlugin::name() const
return QStringLiteral("macOS");
}
-void QtQuickControls2MacOSStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2MacOSStylePlugin::initializeTheme(QQuickTheme */*theme*/)
{
- QQuickStylePlugin::registerTypes(uri);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
index 47e7e877..095dd6d7 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
@@ -52,8 +52,7 @@ public:
QtQuickControls2MaterialStylePlugin(QObject *parent = nullptr);
QString name() const override;
-
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QQuickMaterialTheme theme;
};
@@ -67,15 +66,10 @@ QString QtQuickControls2MaterialStylePlugin::name() const
return QStringLiteral("Material");
}
-void QtQuickControls2MaterialStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2MaterialStylePlugin::initializeTheme(QQuickTheme *theme)
{
- QQuickStylePlugin::registerTypes(uri);
-
- if (!QQuickTheme::instance())
- return;
-
QQuickMaterialStyle::initGlobals();
- theme.initialize(QQuickTheme::instance());
+ this->theme.initialize(theme);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp
index 47263570..85c51e4f 100644
--- a/src/imports/controls/qtquickcontrols2plugin.cpp
+++ b/src/imports/controls/qtquickcontrols2plugin.cpp
@@ -34,20 +34,14 @@
**
****************************************************************************/
-#include <QtCore/qdir.h>
-#include <QtCore/qfile.h>
-#include <QtCore/qfileinfo.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtCore/qpluginloader.h>
#include <QtCore/private/qfileselector_p.h>
-#include <QtQml/qqmlfile.h>
-#include <QtQml/qqmlextensionplugin.h>
+#include <QtCore/qloggingcategory.h>
#include <QtQml/qqmlengine.h>
-#include <QtQml/private/qqmldirparser_p.h>
-#include <QtQuickControls2/qquickstyle.h>
+#include <QtQml/qqmlextensionplugin.h>
+#include <QtQuickTemplates2/private/qquicktheme_p_p.h>
#include <QtQuickControls2/private/qquickstyle_p.h>
#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p_p.h>
+#include <QtQuickControls2/qquickstyle.h>
QT_BEGIN_NAMESPACE
@@ -134,7 +128,7 @@ void QtQuickControls2Plugin::registerTypes(const char *uri)
if (styleName != fallbackStyleName && styleName != QLatin1String("Default")) {
registeredFallbackStyleUri = ::fallbackStyleUri();
qCDebug(lcQtQuickControlsStylePlugin) << "calling qmlRegisterModuleImport() to register fallback style with"
- << "uri \"" << qtQuickControlsUri << "\" moduleMajor" << QQmlModuleImportModuleAny
+ << " uri \"" << qtQuickControlsUri << "\" moduleMajor" << QQmlModuleImportModuleAny
<< "import" << registeredFallbackStyleUri << "importMajor" << QQmlModuleImportAuto;
// The fallback style must be a built-in style, so we match the version number.
qmlRegisterModuleImport(qtQuickControlsUri, QQmlModuleImportModuleAny, registeredFallbackStyleUri.toUtf8().constData(),
@@ -174,7 +168,6 @@ void QtQuickControls2Plugin::unregisterTypes()
registeredStyleUri.clear();
QQuickThemePrivate::instance.reset();
-
QQuickStylePrivate::reset();
}
diff --git a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
index 539738dd..01074432 100644
--- a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
+++ b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
@@ -51,8 +51,7 @@ public:
QtQuickControls2UniversalStylePlugin(QObject *parent = nullptr);
QString name() const override;
-
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QQuickUniversalTheme theme;
};
@@ -66,15 +65,10 @@ QString QtQuickControls2UniversalStylePlugin::name() const
return QStringLiteral("Universal");
}
-void QtQuickControls2UniversalStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2UniversalStylePlugin::initializeTheme(QQuickTheme *theme)
{
- QQuickStylePlugin::registerTypes(uri);
-
- if (!QQuickTheme::instance())
- return;
-
QQuickUniversalStyle::initGlobals();
- theme.initialize(QQuickTheme::instance());
+ this->theme.initialize(theme);
}
QT_END_NAMESPACE
diff --git a/src/imports/controls/windows/.prev_CMakeLists.txt b/src/imports/controls/windows/.prev_CMakeLists.txt
new file mode 100644
index 00000000..d68839b2
--- /dev/null
+++ b/src/imports/controls/windows/.prev_CMakeLists.txt
@@ -0,0 +1,92 @@
+# Generated from windows.pro.
+
+#####################################################################
+## qtquickcontrols2windowsstyleplugin Plugin:
+#####################################################################
+
+qt_add_qml_module(qtquickcontrols2windowsstyleplugin
+ URI "QtQuick.Controls.Windows"
+ VERSION "${CMAKE_PROJECT_VERSION}"
+ CLASSNAME QtQuickControls2WindowsStylePlugin
+ IMPORTS
+ QtQuick.Controls.Fusion/auto
+ GENERATE_QMLTYPES
+ SOURCES
+ qtquickcontrols2windowsstyleplugin.cpp
+ DEFINES
+ QT_NO_CAST_FROM_ASCII
+ QT_NO_CAST_TO_ASCII
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QmlPrivate
+ Qt::QuickControls2Private
+ Qt::QuickPrivate
+ Qt::QuickTemplates2Private
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::QuickControls2
+ Qt::QuickTemplates2
+)
+
+#### Keys ignored in scope 1:.:.:windows.pro:<TRUE>:
+# OTHER_FILES = "qmldir" "$$QML_FILES"
+# QML_IMPORT_NAME = "QtQuick.Controls.Windows"
+# QML_IMPORT_VERSION = "$$QT_VERSION"
+# TARGETPATH = "QtQuick/Controls/Windows"
+# _REQUIREMENTS = "qtConfig(quickcontrols2-windows)"
+
+set(qml_files
+ "Button.qml"
+ "CheckBox.qml"
+ "ComboBox.qml"
+ "Frame.qml"
+ "GroupBox.qml"
+ "ProgressBar.qml"
+ "RadioButton.qml"
+ "Slider.qml"
+ "SpinBox.qml"
+ "TextArea.qml"
+ "TextField.qml"
+)
+set_source_files_properties(Button.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(CheckBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(ComboBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(Frame.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(GroupBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(ProgressBar.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(RadioButton.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(Slider.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(SpinBox.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(TextArea.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+set_source_files_properties(TextField.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
+
+qt6_target_qml_files(qtquickcontrols2windowsstyleplugin
+ FILES
+ ${qml_files}
+)
diff --git a/src/imports/controls/windows/CMakeLists.txt b/src/imports/controls/windows/CMakeLists.txt
index 749d19a2..6bcbc26c 100644
--- a/src/imports/controls/windows/CMakeLists.txt
+++ b/src/imports/controls/windows/CMakeLists.txt
@@ -45,6 +45,7 @@ set(qml_files
"ComboBox.qml"
"Frame.qml"
"GroupBox.qml"
+ "ProgressBar.qml"
"RadioButton.qml"
"Slider.qml"
"SpinBox.qml"
@@ -66,6 +67,9 @@ set_source_files_properties(Frame.qml PROPERTIES
set_source_files_properties(GroupBox.qml PROPERTIES
QT_QML_SOURCE_VERSION "6.0"
)
+set_source_files_properties(ProgressBar.qml PROPERTIES
+ QT_QML_SOURCE_VERSION "6.0"
+)
set_source_files_properties(RadioButton.qml PROPERTIES
QT_QML_SOURCE_VERSION "6.0"
)
diff --git a/src/imports/controls/windows/qtquickcontrols2windowsstyleplugin.cpp b/src/imports/controls/windows/qtquickcontrols2windowsstyleplugin.cpp
index 9c50f4fb..1136cd9a 100644
--- a/src/imports/controls/windows/qtquickcontrols2windowsstyleplugin.cpp
+++ b/src/imports/controls/windows/qtquickcontrols2windowsstyleplugin.cpp
@@ -46,8 +46,8 @@ class QtQuickControls2WindowsStylePlugin : public QQuickStylePlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- void registerTypes(const char *uri) override;
QString name() const override;
+ void initializeTheme(QQuickTheme *theme) override;
};
QString QtQuickControls2WindowsStylePlugin::name() const
@@ -55,9 +55,8 @@ QString QtQuickControls2WindowsStylePlugin::name() const
return QStringLiteral("Windows");
}
-void QtQuickControls2WindowsStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2WindowsStylePlugin::initializeTheme(QQuickTheme */*theme*/)
{
- QQuickStylePlugin::registerTypes(uri);
}
QT_END_NAMESPACE
diff --git a/src/imports/controlsimpl/.prev_CMakeLists.txt b/src/imports/controlsimpl/.prev_CMakeLists.txt
index 58f7ad8c..ec51260d 100644
--- a/src/imports/controlsimpl/.prev_CMakeLists.txt
+++ b/src/imports/controlsimpl/.prev_CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquickcontrols2implplugin
URI "QtQuick.Controls.impl"
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QtQuickControls2ImplPlugin
- DEPENDENCIES
- QtQuick.Templates/2.5
SKIP_TYPE_REGISTRATION
SOURCES
qtquickcontrols2implplugin.cpp
diff --git a/src/imports/controlsimpl/CMakeLists.txt b/src/imports/controlsimpl/CMakeLists.txt
index 7b65cccb..86966168 100644
--- a/src/imports/controlsimpl/CMakeLists.txt
+++ b/src/imports/controlsimpl/CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquickcontrols2implplugin
URI "QtQuick.Controls.impl"
VERSION "6.0" # special case
CLASSNAME QtQuickControls2ImplPlugin
- DEPENDENCIES
- QtQuick.Templates/2.5
SKIP_TYPE_REGISTRATION
SOURCES
qtquickcontrols2implplugin.cpp
diff --git a/src/imports/nativestyle/qtquickcontrols2nativestyleplugin.cpp b/src/imports/nativestyle/qtquickcontrols2nativestyleplugin.cpp
index d6e77d5f..ef8bfb9f 100644
--- a/src/imports/nativestyle/qtquickcontrols2nativestyleplugin.cpp
+++ b/src/imports/nativestyle/qtquickcontrols2nativestyleplugin.cpp
@@ -62,7 +62,7 @@ public:
~QtQuickControls2NativeStylePlugin() override;
void initializeEngine(QQmlEngine *engine, const char *uri) override;
- void registerTypes(const char *uri) override;
+ void initializeTheme(QQuickTheme *theme) override;
QString name() const override;
};
@@ -136,14 +136,8 @@ void QtQuickControls2NativeStylePlugin::initializeEngine(QQmlEngine *engine, con
QQuickNativeStyle::setStyle(style);
}
-void QtQuickControls2NativeStylePlugin::registerTypes(const char *uri)
+void QtQuickControls2NativeStylePlugin::initializeTheme(QQuickTheme */*theme*/)
{
- Q_UNUSED(uri);
- if (!QQuickTheme::instance())
- return;
-
- QQuickTheme::instance()->setPalette(QQuickTheme::System, QPalette());
- QQuickTheme::instance()->setFont(QQuickTheme::System, QFont());
}
QT_END_NAMESPACE
diff --git a/src/imports/templates/.prev_CMakeLists.txt b/src/imports/templates/.prev_CMakeLists.txt
index 178906d7..948a4327 100644
--- a/src/imports/templates/.prev_CMakeLists.txt
+++ b/src/imports/templates/.prev_CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquicktemplates2plugin
URI "QtQuick.Templates"
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QtQuickTemplates2Plugin
- DEPENDENCIES
- QtQuick.Window/2.2
SKIP_TYPE_REGISTRATION
SOURCES
qtquicktemplates2plugin.cpp
diff --git a/src/imports/templates/CMakeLists.txt b/src/imports/templates/CMakeLists.txt
index f37f69a8..4c250cae 100644
--- a/src/imports/templates/CMakeLists.txt
+++ b/src/imports/templates/CMakeLists.txt
@@ -8,8 +8,6 @@ qt_add_qml_module(qtquicktemplates2plugin
URI "QtQuick.Templates"
VERSION "6.0" # special case
CLASSNAME QtQuickTemplates2Plugin
- DEPENDENCIES
- QtQuick.Window/2.2
SKIP_TYPE_REGISTRATION
SOURCES
qtquicktemplates2plugin.cpp
diff --git a/src/quickcontrols2/qquickstyle.cpp b/src/quickcontrols2/qquickstyle.cpp
index fd81d1dd..ec0b5e48 100644
--- a/src/quickcontrols2/qquickstyle.cpp
+++ b/src/quickcontrols2/qquickstyle.cpp
@@ -142,6 +142,9 @@ struct QQuickStyleSpec
void setFallbackStyle(const QString &fallback, const QByteArray &method)
{
+ if (!fallback.isEmpty())
+ qCDebug(lcQtQuickControlsStyle) << "fallback style" << fallback << "set on QQuickStyleSpec via" << method;
+
fallbackStyle = fallback;
fallbackMethod = method;
}
diff --git a/src/quickcontrols2/qquickstyleplugin.cpp b/src/quickcontrols2/qquickstyleplugin.cpp
index 657b31fc..f211d4b0 100644
--- a/src/quickcontrols2/qquickstyleplugin.cpp
+++ b/src/quickcontrols2/qquickstyleplugin.cpp
@@ -41,7 +41,6 @@
#include <QtCore/qloggingcategory.h>
#include <QtQml/qqmlengine.h>
#include <QtQml/qqmlfile.h>
-
#include <QtQuickTemplates2/private/qquicktheme_p_p.h>
QT_BEGIN_NAMESPACE
@@ -57,17 +56,24 @@ QQuickStylePlugin::~QQuickStylePlugin()
{
}
-QString QQuickStylePlugin::name() const
-{
- return QString();
-}
-
void QQuickStylePlugin::registerTypes(const char *uri)
{
qCDebug(lcStylePlugin).nospace() << "registerTypes called with uri " << uri << "; plugin name is " << name();
- if (!QQuickTheme::instance())
+ auto theme = QQuickTheme::instance();
+ if (!theme) {
qWarning() << "QtQuick.Controls must be imported before importing" << baseUrl().toString();
+ return;
+ }
+
+ if (name() != QQuickStyle::name()) {
+ qCDebug(lcStylePlugin).nospace() << "theme does not belong to current style ("
+ << QQuickStyle::name() << "); not calling initializeTheme()";
+ return;
+ }
+
+ qCDebug(lcStylePlugin) << "theme has not been initialized; calling initializeTheme()";
+ initializeTheme(theme);
}
void QQuickStylePlugin::unregisterTypes()
diff --git a/src/quickcontrols2/qquickstyleplugin_p.h b/src/quickcontrols2/qquickstyleplugin_p.h
index 37d070db..1a941aa7 100644
--- a/src/quickcontrols2/qquickstyleplugin_p.h
+++ b/src/quickcontrols2/qquickstyleplugin_p.h
@@ -63,7 +63,8 @@ public:
explicit QQuickStylePlugin(QObject *parent = nullptr);
~QQuickStylePlugin();
- virtual QString name() const;
+ virtual QString name() const = 0;
+ virtual void initializeTheme(QQuickTheme *theme) = 0;
void registerTypes(const char *uri) override;
void unregisterTypes() override;
diff --git a/tests/auto/styleimports/CMakeLists.txt b/tests/auto/styleimports/CMakeLists.txt
index b5910e92..86db761a 100644
--- a/tests/auto/styleimports/CMakeLists.txt
+++ b/tests/auto/styleimports/CMakeLists.txt
@@ -24,6 +24,7 @@ qt_add_test(tst_styleimports
Qt::GuiPrivate
Qt::QmlPrivate
Qt::QuickControls2
+ Qt::QuickControls2ImplPrivate
Qt::QuickControls2Private
Qt::QuickPrivate
Qt::QuickTemplates2Private
@@ -33,13 +34,19 @@ qt_add_test(tst_styleimports
# Resources:
set(qmake_resourcestyle_resource_files
- "ResourceStyle/Button.qml"
- "ResourceStyle/qmldir"
+ "resources/ResourceStyle/Button.qml"
+ "resources/ResourceStyle/qmldir"
+)
+set(qmake_resourcestyle_resource_files
+ "ResourceStyle/Button.qml" # special case: QTBUG-86726
+ "ResourceStyle/qmldir" # special case
)
qt_add_resource(tst_styleimports "qmake_resourcestyle"
PREFIX
"/"
+ BASE
+ "resources"
FILES
${qmake_resourcestyle_resource_files}
)
diff --git a/tests/auto/styleimports/data/platformSelectors.qml b/tests/auto/styleimports/data/applicationWindowWithButton.qml
index ba6af22c..ba6af22c 100644
--- a/tests/auto/styleimports/data/platformSelectors.qml
+++ b/tests/auto/styleimports/data/applicationWindowWithButton.qml
diff --git a/tests/auto/styleimports/resources/ResourceStyle/Button.qml b/tests/auto/styleimports/resources/ResourceStyle/Button.qml
new file mode 100644
index 00000000..3a97e9de
--- /dev/null
+++ b/tests/auto/styleimports/resources/ResourceStyle/Button.qml
@@ -0,0 +1,9 @@
+import QtQuick.Controls.impl 2.15
+import QtQuick.Templates 2.15 as T
+T.Button {
+ objectName: "ResourceStyle"
+
+ contentItem: IconLabel {
+ color: "salmon"
+ }
+}
diff --git a/tests/auto/styleimports/ResourceStyle/qmldir b/tests/auto/styleimports/resources/ResourceStyle/qmldir
index 4cb1a835..4cb1a835 100644
--- a/tests/auto/styleimports/ResourceStyle/qmldir
+++ b/tests/auto/styleimports/resources/ResourceStyle/qmldir
diff --git a/tests/auto/styleimports/styleimports.pro b/tests/auto/styleimports/styleimports.pro
index 774d93e9..398ce7c2 100644
--- a/tests/auto/styleimports/styleimports.pro
+++ b/tests/auto/styleimports/styleimports.pro
@@ -4,14 +4,15 @@ SOURCES += tst_styleimports.cpp
macos:CONFIG -= app_bundle
-QT += core-private gui-private qml-private quick-private quickcontrols2-private testlib
+QT += core-private gui-private qml-private quick-private quickcontrols2-private quickcontrols2impl-private testlib
include (../shared/util.pri)
resourcestyle.prefix = /
+resourcestyle.base = resources
resourcestyle.files += \
- $$PWD/ResourceStyle/Button.qml \
- $$PWD/ResourceStyle/qmldir
+ $$PWD/resources/ResourceStyle/Button.qml \
+ $$PWD/resources/ResourceStyle/qmldir
RESOURCES += resourcestyle
TESTDATA = data/*
diff --git a/tests/auto/styleimports/tst_styleimports.cpp b/tests/auto/styleimports/tst_styleimports.cpp
index 8b47dee7..fa524098 100644
--- a/tests/auto/styleimports/tst_styleimports.cpp
+++ b/tests/auto/styleimports/tst_styleimports.cpp
@@ -43,6 +43,7 @@
#include <QtQuick/qquickwindow.h>
#include <QtQuickControls2/qquickstyle.h>
#include <QtQuickControls2/private/qquickstyle_p.h>
+#include <QtQuickControls2Impl/private/qquickiconlabel_p.h>
#include "../shared/util.h"
@@ -62,6 +63,9 @@ private slots:
void importStyleWithoutControls_data();
void importStyleWithoutControls();
+
+ void fallbackStyleShouldNotOverwriteTheme_data();
+ void fallbackStyleShouldNotOverwriteTheme();
};
void tst_StyleImports::initTestCase()
@@ -151,6 +155,7 @@ void tst_StyleImports::select()
QQuickStyle::setFallbackStyle(fallback);
QQmlEngine engine;
+ engine.addImportPath(QLatin1String(":/"));
engine.addImportPath(directory());
engine.addImportPath(dataDirectory());
QQmlComponent component(&engine);
@@ -185,7 +190,7 @@ void tst_StyleImports::platformSelectors()
QQmlApplicationEngine engine;
engine.addImportPath(dataDirectory());
- engine.load(testFileUrl("platformSelectors.qml"));
+ engine.load(testFileUrl("applicationWindowWithButton.qml"));
QQuickWindow *window = qobject_cast<QQuickWindow*>(engine.rootObjects().first());
QVERIFY(window);
@@ -241,6 +246,46 @@ void tst_StyleImports::importStyleWithoutControls()
QTRY_VERIFY(success);
}
+void tst_StyleImports::fallbackStyleShouldNotOverwriteTheme_data()
+{
+ QTest::addColumn<QString>("style");
+ QTest::addColumn<QString>("fallbackStyle");
+ QTest::addColumn<QColor>("expectedContentItemColor");
+
+ QTest::addRow("style=Fusion,fallbackStyle=Material")
+ << QString::fromLatin1("Fusion") << QString::fromLatin1("Material") << QColor::fromRgb(0x252525);
+ QTest::addRow("style=ResourceStyle,fallbackStyle=Material")
+ << QString::fromLatin1("ResourceStyle") << QString::fromLatin1("Material") << QColor("salmon");
+}
+
+void tst_StyleImports::fallbackStyleShouldNotOverwriteTheme()
+{
+ QFETCH(QString, style);
+ QFETCH(QString, fallbackStyle);
+ QFETCH(QColor, expectedContentItemColor);
+
+ QQuickStyle::setStyle(style);
+ QQuickStyle::setFallbackStyle(fallbackStyle);
+
+ QQmlApplicationEngine engine;
+ engine.addImportPath(QLatin1String(":/"));
+ engine.addImportPath(dataDirectory());
+ engine.load(testFileUrl("applicationWindowWithButton.qml"));
+ QVERIFY(!engine.rootObjects().isEmpty());
+ QQuickWindow *window = qobject_cast<QQuickWindow*>(engine.rootObjects().first());
+ QVERIFY(window);
+
+ QObject *button = window->property("button").value<QObject*>();
+ QVERIFY(button);
+
+ QQuickIconLabel *contentItem = button->property("contentItem").value<QQuickIconLabel*>();
+ QVERIFY(contentItem);
+
+ // For example: the Fusion style provides Button.qml, so the Button's text color
+ // should be that of QPalette::ButtonText from QQuickFusionTheme.
+ QCOMPARE(contentItem->color(), expectedContentItemColor);
+}
+
QTEST_MAIN(tst_StyleImports)
#include "tst_styleimports.moc"
diff --git a/tests/manual/nativestyle/main.cpp b/tests/manual/nativestyle/main.cpp
index 536625fb..4925efa8 100644
--- a/tests/manual/nativestyle/main.cpp
+++ b/tests/manual/nativestyle/main.cpp
@@ -55,7 +55,7 @@ int main(int argc, char *argv[])
#elif defined(Q_OS_WINDOWS)
QQuickStyle::setStyle("Windows");
#else
- QQuickStyle::setStyle("FusionDesktop");
+ QQuickStyle::setStyle("Fusion");
#endif
QQmlApplicationEngine engine;