aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/universal
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2016-04-10 05:36:47 +0400
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-04-10 09:47:22 +0000
commit070ab8a0510cc70eecc51953b5aa4e61e675a32a (patch)
tree22cbe8fa0ef084cf5526889250eb6a60891eb4ec /src/imports/controls/universal
parentf7d95592db8da0c70f57e3c84a2c0dc7c44fccc4 (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.cpp19
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")));