diff options
| author | Marco Bubke <marco.bubke@nokia.com> | 2011-01-11 14:09:12 +0100 |
|---|---|---|
| committer | Marco Bubke <marco.bubke@nokia.com> | 2011-01-11 14:14:31 +0100 |
| commit | e32cd328f3cc9d401b3320eafe3da99a286276ec (patch) | |
| tree | 005d6c5019b59a886e5fed563928b8bc35016715 | |
| parent | 99336fee8b376d030830b1d646eeaac486be7f41 (diff) | |
| download | qt-creator-e32cd328f3cc9d401b3320eafe3da99a286276ec.tar.gz | |
QmlDesigner.NodeInstances: Refactor server
| -rw-r--r-- | src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp | 83 | ||||
| -rw-r--r-- | src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h | 2 |
2 files changed, 50 insertions, 35 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp index b8e5b67f70..c85e0232bd 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp @@ -155,41 +155,8 @@ void NodeInstanceServer::stopRenderTimer() void NodeInstanceServer::createScene(const CreateSceneCommand &command) { - Q_ASSERT(!m_declarativeView.data()); - - m_declarativeView = new QDeclarativeView; - m_declarativeView->setViewportUpdateMode(QGraphicsView::NoViewportUpdate); - m_declarativeView->show(); - m_declarativeView->setAttribute(Qt::WA_DontShowOnScreen, true); - - if (!command.fileUrl().isEmpty()) - engine()->setBaseUrl(command.fileUrl()); - - addImports(command.imports()); - - static_cast<QGraphicsScenePrivate*>(QObjectPrivate::get(m_declarativeView->scene()))->processDirtyItemsEmitted = true; - - QList<ServerNodeInstance> instanceList = createInstances(command.instances()); - reparentInstances(command.reparentInstances()); - - foreach(const IdContainer &container, command.ids()) { - if (hasInstanceForId(container.instanceId())) - instanceForId(container.instanceId()).setId(container.id()); - } - - foreach(const PropertyValueContainer &container, command.valueChanges()) - setInstancePropertyVariant(container); - - foreach(const PropertyBindingContainer &container, command.bindingChanges()) - setInstancePropertyBinding(container); - - foreach(ServerNodeInstance instance, instanceList) - instance.doComponentComplete(); - - - - m_declarativeView->scene()->setSceneRect(rootNodeInstance().boundingRect()); - + initializeDeclarativeView(); + QList<ServerNodeInstance> instanceList = setupScene(command); nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(instanceList, true)); nodeInstanceClient()->valuesChanged(createValuesChangedCommand(instanceList)); @@ -807,6 +774,52 @@ void NodeInstanceServer::resetAllItems() static_cast<QGraphicsScenePrivate*>(QObjectPrivate::get(m_declarativeView->scene()))->resetDirtyItem(item); } +void NodeInstanceServer::initializeDeclarativeView() +{ + Q_ASSERT(!m_declarativeView.data()); + + m_declarativeView = new QDeclarativeView; +#ifndef Q_WS_MAC + m_declarativeView->setAttribute(Qt::WA_DontShowOnScreen, true); +#endif + m_declarativeView->setViewportUpdateMode(QGraphicsView::NoViewportUpdate); + m_declarativeView->show(); +#ifdef Q_WS_MAC + m_declarativeView->setAttribute(Qt::WA_DontShowOnScreen, true); +#endif +} + +QList<ServerNodeInstance> NodeInstanceServer::setupScene(const CreateSceneCommand &command) +{ + if (!command.fileUrl().isEmpty()) + engine()->setBaseUrl(command.fileUrl()); + + addImports(command.imports()); + + static_cast<QGraphicsScenePrivate*>(QObjectPrivate::get(m_declarativeView->scene()))->processDirtyItemsEmitted = true; + + QList<ServerNodeInstance> instanceList = createInstances(command.instances()); + reparentInstances(command.reparentInstances()); + + foreach(const IdContainer &container, command.ids()) { + if (hasInstanceForId(container.instanceId())) + instanceForId(container.instanceId()).setId(container.id()); + } + + foreach(const PropertyValueContainer &container, command.valueChanges()) + setInstancePropertyVariant(container); + + foreach(const PropertyBindingContainer &container, command.bindingChanges()) + setInstancePropertyBinding(container); + + foreach(ServerNodeInstance instance, instanceList) + instance.doComponentComplete(); + + m_declarativeView->scene()->setSceneRect(rootNodeInstance().boundingRect()); + + return instanceList; +} + void NodeInstanceServer::findItemChangesAndSendChangeCommands() { static bool inFunction = false; diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h index fb7af10d5f..c209a915a7 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h @@ -121,6 +121,8 @@ protected: void startRenderTimer(); void slowDownRenderTimer(); void stopRenderTimer(); + void initializeDeclarativeView(); + QList<ServerNodeInstance> setupScene(const CreateSceneCommand &command); private: ServerNodeInstance m_rootNodeInstance; |
