aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/material/qtquickmaterialstyleplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/controls/material/qtquickmaterialstyleplugin.cpp')
-rw-r--r--src/imports/controls/material/qtquickmaterialstyleplugin.cpp19
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");