aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/material/qtquickmaterialstyleplugin.cpp
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/material/qtquickmaterialstyleplugin.cpp
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/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");