diff options
author | Marco Bubke <marco.bubke@qt.io> | 2020-11-09 16:35:00 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2020-11-10 14:35:12 +0000 |
commit | 2a2dfbec7373c76bb4688e6500142fc17c4d6578 (patch) | |
tree | 4f8242f1157245dc306e03db31d66dcae1e2dba9 /share/qtcreator/qml/qmlpuppet/qml2puppet | |
parent | 2ee63af4cd70bdb98296c636ffb71efacd3c2308 (diff) |
QmlDesigner: Add states to ImageCache
Task-number: QDS-2998
Change-Id: I8e65881181ae1010ef1f8bab92fa71d92c961bcd
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet')
6 files changed, 33 insertions, 29 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp index 39add144fb..552d323247 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp @@ -318,12 +318,13 @@ void NodeInstanceServer::stopRenderTimer() void NodeInstanceServer::createScene(const CreateSceneCommand &command) { - setTranslationLanguage(command.language()); + setTranslationLanguage(command.language); initializeView(); Internal::QmlPrivateGate::stopUnifiedTimer(); setupScene(command); + setupState(command.stateInstanceId); refreshBindings(); startRenderTimer(); } @@ -399,15 +400,7 @@ void NodeInstanceServer::reparentInstances(const ReparentInstancesCommand &comma void NodeInstanceServer::changeState(const ChangeStateCommand &command) { - if (hasInstanceForId(command.stateInstanceId())) { - if (activeStateInstance().isValid()) - activeStateInstance().deactivateState(); - ServerNodeInstance instance = instanceForId(command.stateInstanceId()); - instance.activateState(); - } else { - if (activeStateInstance().isValid()) - activeStateInstance().deactivateState(); - } + setupState(command.stateInstanceId()); startRenderTimer(); } @@ -569,38 +562,37 @@ void NodeInstanceServer::setupDefaultDummyData() QList<ServerNodeInstance> NodeInstanceServer::setupInstances(const CreateSceneCommand &command) { - QList<ServerNodeInstance> instanceList = createInstances(command.instances()); + QList<ServerNodeInstance> instanceList = createInstances(command.instances); - foreach (const IdContainer &container, command.ids()) { + for (const IdContainer &container : std::as_const(command.ids)) { if (hasInstanceForId(container.instanceId())) instanceForId(container.instanceId()).setId(container.id()); } - foreach (const PropertyValueContainer &container, command.valueChanges()) { + for (const PropertyValueContainer &container : std::as_const(command.valueChanges)) { if (container.isDynamic()) setInstancePropertyVariant(container); } - foreach (const PropertyValueContainer &container, command.valueChanges()) { + for (const PropertyValueContainer &container : std::as_const(command.valueChanges)) { if (!container.isDynamic()) setInstancePropertyVariant(container); } - reparentInstances(command.reparentInstances()); + reparentInstances(command.reparentInstances); - foreach (const PropertyBindingContainer &container, command.bindingChanges()) { + for (const PropertyBindingContainer &container : std::as_const(command.bindingChanges)) { if (container.isDynamic()) setInstancePropertyBinding(container); } - foreach (const PropertyBindingContainer &container, command.bindingChanges()) { + for (const PropertyBindingContainer &container : std::as_const(command.bindingChanges)) { if (!container.isDynamic()) setInstancePropertyBinding(container); } - foreach (const PropertyValueContainer &container, command.auxiliaryChanges()) { + for (const PropertyValueContainer &container : std::as_const(command.auxiliaryChanges)) setInstanceAuxiliaryData(container); - } for (int i = instanceList.size(); --i >= 0; ) instanceList[i].doComponentComplete(); @@ -1498,4 +1490,17 @@ void NodeInstanceServer::handleInstanceHidden(const ServerNodeInstance &/*instan { } +void NodeInstanceServer::setupState(qint32 stateInstanceId) +{ + if (hasInstanceForId(stateInstanceId)) { + if (activeStateInstance().isValid()) + activeStateInstance().deactivateState(); + ServerNodeInstance instance = instanceForId(stateInstanceId); + instance.activateState(); + } else { + if (activeStateInstance().isValid()) + activeStateInstance().deactivateState(); + } +} + } // namespace QmlDesigner diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.h index 1d1533884d..021a2bd6d0 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.h @@ -289,6 +289,7 @@ protected: static QList<QObject*> allSubObjectsForObject(QObject *object); virtual void resizeCanvasSizeToRootItemSize() = 0; + void setupState(qint32 stateInstanceId); private: void setupOnlyWorkingImports(const QStringList &workingImportStatementList); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp index 99dbe5ffe1..07f2398151 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp @@ -1316,8 +1316,7 @@ void Qt5InformationNodeInstanceServer::createScene(const CreateSceneCommand &com Qt5NodeInstanceServer::createScene(command); QList<ServerNodeInstance> instanceList; - const auto instances = command.instances(); - for (const InstanceContainer &container : instances) { + for (const InstanceContainer &container : std::as_const(command.instances)) { if (hasInstanceForId(container.instanceId())) { ServerNodeInstance instance = instanceForId(container.instanceId()); if (instance.isValid()) @@ -1331,7 +1330,7 @@ void Qt5InformationNodeInstanceServer::createScene(const CreateSceneCommand &com nodeInstanceClient()->componentCompleted(createComponentCompletedCommand(instanceList)); if (isQuick3DMode()) - setup3DEditView(instanceList, command.edit3dToolStates()); + setup3DEditView(instanceList, command.edit3dToolStates); QObject::connect(&m_renderModelNodeImageViewTimer, &QTimer::timeout, this, &Qt5InformationNodeInstanceServer::doRenderModelNodeImageView); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp index 3cc541545e..8ea68bd231 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5nodeinstanceserver.cpp @@ -116,11 +116,10 @@ void Qt5NodeInstanceServer::resetAllItems() void Qt5NodeInstanceServer::setupScene(const CreateSceneCommand &command) { - - setupMockupTypes(command.mockupTypes()); - setupFileUrl(command.fileUrl()); - setupImports(command.imports()); - setupDummyData(command.fileUrl()); + setupMockupTypes(command.mockupTypes); + setupFileUrl(command.fileUrl); + setupImports(command.imports); + setupDummyData(command.fileUrl); setupInstances(command); quickView()->resize(rootNodeInstance().boundingRect().size().toSize()); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp index 810c8f0dcf..ae167ad6ca 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5previewnodeinstanceserver.cpp @@ -46,7 +46,7 @@ Qt5PreviewNodeInstanceServer::Qt5PreviewNodeInstanceServer(NodeInstanceClientInt void Qt5PreviewNodeInstanceServer::createScene(const CreateSceneCommand &command) { - setTranslationLanguage(command.language()); + setTranslationLanguage(command.language); initializeView(); setupScene(command); startRenderTimer(); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp index 9722280dfa..4a45c626be 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5rendernodeinstanceserver.cpp @@ -137,7 +137,7 @@ void Qt5RenderNodeInstanceServer::createScene(const CreateSceneCommand &command) Qt5NodeInstanceServer::createScene(command); QList<ServerNodeInstance> instanceList; - foreach (const InstanceContainer &container, command.instances()) { + for (const InstanceContainer &container : std::as_const(command.instances)) { if (hasInstanceForId(container.instanceId())) { ServerNodeInstance instance = instanceForId(container.instanceId()); if (instance.isValid()) { |