diff options
Diffstat (limited to 'src/quickcontrols2')
| -rw-r--r-- | src/quickcontrols2/qquickstyle.cpp | 3 | ||||
| -rw-r--r-- | src/quickcontrols2/qquickstyleplugin.cpp | 20 | ||||
| -rw-r--r-- | src/quickcontrols2/qquickstyleplugin_p.h | 3 |
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; |
