aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols2
diff options
context:
space:
mode:
Diffstat (limited to 'src/quickcontrols2')
-rw-r--r--src/quickcontrols2/qquickstyle.cpp3
-rw-r--r--src/quickcontrols2/qquickstyleplugin.cpp20
-rw-r--r--src/quickcontrols2/qquickstyleplugin_p.h3
3 files changed, 18 insertions, 8 deletions
diff --git a/src/quickcontrols2/qquickstyle.cpp b/src/quickcontrols2/qquickstyle.cpp
index fd81d1dd19..ec0b5e4880 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 657b31fc60..f211d4b0ae 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 37d070dbe7..1a941aa797 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;