diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2016-04-10 05:36:47 +0400 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-04-10 09:47:22 +0000 |
commit | 070ab8a0510cc70eecc51953b5aa4e61e675a32a (patch) | |
tree | 22cbe8fa0ef084cf5526889250eb6a60891eb4ec /src/imports/controls/material/qtquickmaterialstyleplugin.cpp | |
parent | f7d95592db8da0c70f57e3c84a2c0dc7c44fccc4 (diff) |
Simplify the style plugins code a bit
QQuickProxyTheme's destructor restores platform_theme,
so keep proxy theme around and destroy it when we don't need it anymore.
Change-Id: I2fef7c295251af1cd944cea27531c1c117d34d51
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
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"); |