summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@nokia.com>2011-01-11 14:09:12 +0100
committerMarco Bubke <marco.bubke@nokia.com>2011-01-11 14:14:31 +0100
commite32cd328f3cc9d401b3320eafe3da99a286276ec (patch)
tree005d6c5019b59a886e5fed563928b8bc35016715
parent99336fee8b376d030830b1d646eeaac486be7f41 (diff)
downloadqt-creator-e32cd328f3cc9d401b3320eafe3da99a286276ec.tar.gz
QmlDesigner.NodeInstances: Refactor server
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp83
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h2
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;