From eda83c9148f1f263027afd611fc67d16af63fd95 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 3 Sep 2012 12:55:34 +0200 Subject: [PATCH] QmlDesigner: Remove DeclarativeWidgetViewPrivate Change-Id: I96fab51078169aa4fdf405609ccfb4b1a3a1e937 Reviewed-by: Alessandro Portale --- .../propertyeditor/declarativewidgetview.cpp | 81 +++++++------------ .../propertyeditor/declarativewidgetview.h | 16 ++-- 2 files changed, 37 insertions(+), 60 deletions(-) diff --git a/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.cpp b/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.cpp index 43b1686d12c..ee1c7fd0c5f 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.cpp @@ -38,94 +38,71 @@ namespace QmlDesigner { -class DeclarativeWidgetViewPrivate +void DeclarativeWidgetView::execute() { -public: - DeclarativeWidgetViewPrivate(DeclarativeWidgetView *view) - : q(view), root(0), component(0) {} - ~DeclarativeWidgetViewPrivate() { delete root; } - void execute(); + if (m_root) + delete m_root.data(); - DeclarativeWidgetView *q; + if (m_component) + delete m_component.data(); - QPointer root; - QUrl source; - QDeclarativeEngine engine; - QDeclarativeComponent *component; -}; - -void DeclarativeWidgetViewPrivate::execute() -{ - if (root) { - delete root; - root = 0; - } - if (component) { - delete component; - component = 0; - } - if (!source.isEmpty()) { - component = new QDeclarativeComponent(&engine, source, q); - if (!component->isLoading()) { - q->continueExecute(); + if (!m_source.isEmpty()) { + m_component = new QDeclarativeComponent(&m_engine, m_source, this); + if (!m_component->isLoading()) { + continueExecute(); } else { - QObject::connect(component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), q, SLOT(continueExecute())); + connect(m_component.data(), SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(continueExecute())); } } } DeclarativeWidgetView::DeclarativeWidgetView(QWidget *parent) : - QWidget(parent), d(new DeclarativeWidgetViewPrivate(this)) + QWidget(parent) { } -DeclarativeWidgetView::~DeclarativeWidgetView() -{ - delete d; -} - QUrl DeclarativeWidgetView::source() const { - return d->source; + return m_source; } void DeclarativeWidgetView::setSource(const QUrl& url) { - d->source = url; - d->execute(); + m_source = url; + execute(); } QDeclarativeEngine* DeclarativeWidgetView::engine() { - return &d->engine; + return &m_engine; } QWidget *DeclarativeWidgetView::rootWidget() const { - return d->root; + return m_root.data(); } QDeclarativeContext* DeclarativeWidgetView::rootContext() { - return d->engine.rootContext(); + return m_engine.rootContext(); } DeclarativeWidgetView::Status DeclarativeWidgetView::status() const { - if (!d->component) + if (!m_component) return DeclarativeWidgetView::Null; - return DeclarativeWidgetView::Status(d->component->status()); + return DeclarativeWidgetView::Status(m_component->status()); } void DeclarativeWidgetView::continueExecute() { - disconnect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(continueExecute())); + disconnect(m_component.data(), SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(continueExecute())); - if (d->component->isError()) { - QList errorList = d->component->errors(); + if (m_component->isError()) { + QList errorList = m_component->errors(); foreach (const QDeclarativeError &error, errorList) { qWarning() << error; } @@ -133,10 +110,10 @@ void DeclarativeWidgetView::continueExecute() return; } - QObject *obj = d->component->create(); + QObject *obj = m_component->create(); - if(d->component->isError()) { - QList errorList = d->component->errors(); + if (m_component->isError()) { + QList errorList = m_component->errors(); foreach (const QDeclarativeError &error, errorList) { qWarning() << error; } @@ -150,7 +127,7 @@ void DeclarativeWidgetView::continueExecute() void DeclarativeWidgetView::setRootWidget(QWidget *widget) { - if (d->root == widget) + if (m_root.data() == widget) return; window()->setAttribute(Qt::WA_OpaquePaintEvent, false); @@ -160,10 +137,10 @@ void DeclarativeWidgetView::setRootWidget(QWidget *widget) widget->setVisible(true); } resize(widget->size()); - d->root = widget; + m_root.reset(widget); - if (d->root) { - QSize initialSize = d->root->size(); + if (m_root) { + QSize initialSize = m_root->size(); if (initialSize != size()) { resize(initialSize); } diff --git a/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.h b/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.h index 25a757de80e..83770c990c5 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.h +++ b/src/plugins/qmldesigner/components/propertyeditor/declarativewidgetview.h @@ -33,17 +33,16 @@ #include #include +#include QT_BEGIN_NAMESPACE -class QDeclarativeEngine; class QDeclarativeContext; class QDeclarativeError; +class QDeclarativeComponent; QT_END_NAMESPACE namespace QmlDesigner { -class DeclarativeWidgetViewPrivate; - class DeclarativeWidgetView : public QWidget { Q_OBJECT @@ -52,8 +51,6 @@ class DeclarativeWidgetView : public QWidget public: explicit DeclarativeWidgetView(QWidget *parent = 0); - virtual ~DeclarativeWidgetView(); - QUrl source() const; void setSource(const QUrl&); @@ -69,14 +66,17 @@ signals: void statusChanged(DeclarativeWidgetView::Status); protected: - virtual void setRootWidget(QWidget *); + void setRootWidget(QWidget *); + void execute(); private Q_SLOTS: void continueExecute(); private: - friend class DeclarativeWidgetViewPrivate; - DeclarativeWidgetViewPrivate *d; + QScopedPointer m_root; + QUrl m_source; + QDeclarativeEngine m_engine; + QWeakPointer m_component; };