diff options
Diffstat (limited to 'src/imports/controls/material/qtquickmaterialstyleplugin.cpp')
-rw-r--r-- | src/imports/controls/material/qtquickmaterialstyleplugin.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/imports/controls/material/qtquickmaterialstyleplugin.cpp b/src/imports/controls/material/qtquickmaterialstyleplugin.cpp index c68fd13b..8b5f8dc4 100644 --- a/src/imports/controls/material/qtquickmaterialstyleplugin.cpp +++ b/src/imports/controls/material/qtquickmaterialstyleplugin.cpp @@ -62,12 +62,12 @@ class QtQuickMaterialStylePlugin : public QQmlExtensionPlugin public: QtQuickMaterialStylePlugin(QObject *parent = nullptr); - ~QtQuickMaterialStylePlugin(); + void registerTypes(const char *uri) override; void initializeEngine(QQmlEngine *engine, const char *uri) override; private: - QQuickProxyTheme *theme; + QScopedPointer<QQuickProxyTheme> theme; }; QtQuickMaterialStylePlugin::QtQuickMaterialStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) @@ -75,15 +75,6 @@ QtQuickMaterialStylePlugin::QtQuickMaterialStylePlugin(QObject *parent) : QQmlEx initResources(); } -QtQuickMaterialStylePlugin::~QtQuickMaterialStylePlugin() -{ - if (theme) { - QPlatformTheme *old = theme->theme(); - QGuiApplicationPrivate::platform_theme = old; - delete theme; - } -} - void QtQuickMaterialStylePlugin::registerTypes(const char *uri) { qmlRegisterUncreatableType<QQuickMaterialStyle>(uri, 1, 0, "Material", tr("Material is an attached property")); @@ -93,8 +84,10 @@ void QtQuickMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char { Q_UNUSED(engine); - if (QQuickStyle::name().compare(QLatin1String("material"), Qt::CaseInsensitive) == 0) - QGuiApplicationPrivate::platform_theme = new QQuickMaterialTheme; + if (QQuickStyle::name().compare(QLatin1String("material"), Qt::CaseInsensitive) == 0) { + theme.reset(new QQuickMaterialTheme); + QGuiApplicationPrivate::platform_theme = theme.data(); + } QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType<QQuickMaterialProgressRing>(import, 1, 0, "ProgressRing"); |