OSDN Git Service

QmlDesigner.Instances: Move instances out of process
authorMarco Bubke <marco.bubke@nokia.com>
Wed, 24 Nov 2010 13:52:06 +0000 (14:52 +0100)
committerMarco Bubke <marco.bubke@nokia.com>
Wed, 24 Nov 2010 14:52:22 +0000 (15:52 +0100)
commited42462889b2835f99c714b84fa0db44780a9a26
tree1b73d7245eef8ac47e2e57b68b03152b5940ea70
parentf123af08b7ce5842e053e855c375ff82f84377f7
QmlDesigner.Instances: Move instances out of process

The complete qml emulation layer (instances) is moved
into another external process (qmlpuppet).

Summary of architectural changes:

- Asynchronous messaging
    Handling commands and data transfer asynchronously reduces the
    amount of context switches between processes.

- Proxy classes for client process
    This classes abstract the inter process communication

- QVariant based command parsing and serialization
    Using LocalSocket in bidirectional manner for communications
    of commands and data transfer.

- Integer based identifier instead of ModelNode in client process
    The qml emulation layer (instances) has no more depencies to our
    internal data model.

- Timer based rendering
    Rendering in instances is controlled by a timer. Only dirty items
    are updated.
113 files changed:
.gitignore
src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
src/plugins/qmldesigner/components/formeditor/formeditorview.cpp
src/plugins/qmldesigner/components/formeditor/formeditorview.h
src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
src/plugins/qmldesigner/designercore/designercore.pri
src/plugins/qmldesigner/designercore/exceptions/exceptions.pri [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/commondefines.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/modelnode.h
src/plugins/qmldesigner/designercore/include/nodeinstance.h
src/plugins/qmldesigner/designercore/include/nodeinstanceclientinterface.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/nodeinstanceserverinterface.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
src/plugins/qmldesigner/designercore/include/propertyabstractcontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/propertybindingcontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/propertyvaluecontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/include/qmlobjectnode.h
src/plugins/qmldesigner/designercore/instances/behaviornodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/behaviornodeinstance.h
src/plugins/qmldesigner/designercore/instances/changebindingscommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changebindingscommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changefileurlcommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changefileurlcommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changeidscommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changeidscommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changestatecommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changestatecommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changevaluescommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/changevaluescommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/childrenchangeeventfilter.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/childrenchangeeventfilter.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/clearscenecommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/clearscenecommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/componentnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/componentnodeinstance.h
src/plugins/qmldesigner/designercore/instances/createinstancescommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/createinstancescommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/createscenecommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/createscenecommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/declarativedesignercommunicationinterface.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/declarativedesignercommunicationinterface.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/dummynodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/dummynodeinstance.h
src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.h
src/plugins/qmldesigner/designercore/instances/graphicsscenenodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/graphicsscenenodeinstance.h [deleted file]
src/plugins/qmldesigner/designercore/instances/graphicsviewnodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/graphicsviewnodeinstance.h [deleted file]
src/plugins/qmldesigner/designercore/instances/graphicswidgetnodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/graphicswidgetnodeinstance.h [deleted file]
src/plugins/qmldesigner/designercore/instances/idcontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/idcontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/informationchangedcommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/informationchangedcommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/informationcontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/informationcontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/instancecontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/instancecontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/instances.pri [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstanceclientproxy.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp
src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.h
src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstanceserverinterface.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp
src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/objectnodeinstance.h
src/plugins/qmldesigner/designercore/instances/pixmapchangedcommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/pixmapchangedcommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/positionernodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/positionernodeinstance.h
src/plugins/qmldesigner/designercore/instances/propertyabstractcontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/propertybindingcontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/propertyvaluecontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/proxywidgetnodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h
src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.h
src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.h
src/plugins/qmldesigner/designercore/instances/qmltransitionnodeinstance.cpp
src/plugins/qmldesigner/designercore/instances/qmltransitionnodeinstance.h
src/plugins/qmldesigner/designercore/instances/qmlviewnodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/qmlviewnodeinstance.h [deleted file]
src/plugins/qmldesigner/designercore/instances/removeinstancescommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/removeinstancescommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/removepropertiescommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/removepropertiescommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/reparentcontainer.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/reparentcontainer.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/reparentinstancescommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/reparentinstancescommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/servernodeinstance.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/servernodeinstance.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/valueschangedcommand.cpp [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/valueschangedcommand.h [new file with mode: 0644]
src/plugins/qmldesigner/designercore/instances/widgetnodeinstance.cpp [deleted file]
src/plugins/qmldesigner/designercore/instances/widgetnodeinstance.h [deleted file]
src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
src/plugins/qmldesigner/designercore/model/qmlanchors.cpp
src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
src/tools/qmlpuppet/main.cpp [moved from src/plugins/qmldesigner/designercore/instances/proxywidgetnodeinstance.h with 66% similarity]
src/tools/qmlpuppet/qmlpuppet.pro [new file with mode: 0644]
src/tools/tools.pro