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/universal | |
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/universal')
-rw-r--r-- | src/imports/controls/universal/qtquickuniversalstyleplugin.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/imports/controls/universal/qtquickuniversalstyleplugin.cpp b/src/imports/controls/universal/qtquickuniversalstyleplugin.cpp index 952f0302..371b94ed 100644 --- a/src/imports/controls/universal/qtquickuniversalstyleplugin.cpp +++ b/src/imports/controls/universal/qtquickuniversalstyleplugin.cpp @@ -62,12 +62,12 @@ class QtQuickUniversalStylePlugin: public QQmlExtensionPlugin public: QtQuickUniversalStylePlugin(QObject *parent = nullptr); - ~QtQuickUniversalStylePlugin(); + void registerTypes(const char *uri) override; void initializeEngine(QQmlEngine *engine, const char *uri) override; private: - QQuickProxyTheme *theme; + QScopedPointer<QQuickProxyTheme> theme; }; QtQuickUniversalStylePlugin::QtQuickUniversalStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) @@ -75,15 +75,6 @@ QtQuickUniversalStylePlugin::QtQuickUniversalStylePlugin(QObject *parent) : QQml initResources(); } -QtQuickUniversalStylePlugin::~QtQuickUniversalStylePlugin() -{ - if (theme) { - QPlatformTheme *old = theme->theme(); - QGuiApplicationPrivate::platform_theme = old; - delete theme; - } -} - void QtQuickUniversalStylePlugin::registerTypes(const char *uri) { qmlRegisterUncreatableType<QQuickUniversalStyle>(uri, 1, 0, "Universal", tr("Universal is an attached property")); @@ -91,8 +82,10 @@ void QtQuickUniversalStylePlugin::registerTypes(const char *uri) void QtQuickUniversalStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) { - if (QQuickStyle::name().compare(QLatin1String("universal"), Qt::CaseInsensitive) == 0) - QGuiApplicationPrivate::platform_theme = new QQuickUniversalTheme; + if (QQuickStyle::name().compare(QLatin1String("universal"), Qt::CaseInsensitive) == 0) { + theme.reset(new QQuickUniversalTheme); + QGuiApplicationPrivate::platform_theme = theme.data(); + } engine->addImageProvider(QStringLiteral("universal"), new QQuickColorImageProvider(QStringLiteral(":/qt-project.org/imports/Qt/labs/controls/universal/images"))); |