void NodeInstanceView::removeInstanceNodeRelationship(const ModelNode &node) { Q_ASSERT(m_nodeInstanceHash.contains(node)); NodeInstance instance = instanceForModelNode(node); m_nodeInstanceHash.remove(node); instance.makeInvalid(); }
void NodeInstanceView::nodeIdChanged(const ModelNode& node, const QString& /*newId*/, const QString& /*oldId*/) { if (hasInstanceForModelNode(node)) { NodeInstance instance = instanceForModelNode(node); nodeInstanceServer()->changeIds(createChangeIdsCommand(QList<NodeInstance>() << instance)); } }
void NodeInstanceView::nodeSourceChanged(const ModelNode &node, const QString & newNodeSource) { if (hasInstanceForModelNode(node)) { NodeInstance instance = instanceForModelNode(node); ChangeNodeSourceCommand changeNodeSourceCommand(instance.instanceId(), newNodeSource); nodeInstanceServer()->changeNodeSource(changeNodeSourceCommand); } }
void NodeInstanceView::currentStateChanged(const ModelNode &node) { NodeInstance newStateInstance = instanceForModelNode(node); if (newStateInstance.isValid() && node.metaInfo().isSubclassOf("QtQuick.State", 1, 0)) nodeInstanceView()->activateState(newStateInstance); else nodeInstanceView()->activateBaseState(); }
void NodeInstanceView::nodeOrderChanged(const NodeListProperty & listProperty, const ModelNode & /*movedNode*/, int /*oldIndex*/) { QVector<ReparentContainer> containerList; PropertyName propertyName = listProperty.name(); qint32 containerInstanceId = -1; ModelNode containerNode = listProperty.parentModelNode(); if (hasInstanceForModelNode(containerNode)) containerInstanceId = instanceForModelNode(containerNode).instanceId(); foreach (const ModelNode &node, listProperty.toModelNodeList()) { qint32 instanceId = -1; if (hasInstanceForModelNode(node)) { instanceId = instanceForModelNode(node).instanceId(); ReparentContainer container(instanceId, containerInstanceId, propertyName, containerInstanceId, propertyName); containerList.append(container); } } nodeInstanceServer()->reparentInstances(ReparentInstancesCommand(containerList)); }
void NodeInstanceView::modelAttached(Model *model) { AbstractView::modelAttached(model); m_nodeInstanceServer = new NodeInstanceServerProxy(this, m_runModus, m_currentKit); m_lastCrashTime.start(); connect(m_nodeInstanceServer.data(), SIGNAL(processCrashed()), this, SLOT(handleChrash())); if (!isSkippedRootNode(rootModelNode())) nodeInstanceServer()->createScene(createCreateSceneCommand()); ModelNode stateNode = currentStateNode(); if (stateNode.isValid() && stateNode.metaInfo().isSubclassOf("QtQuick.State", 1, 0)) { NodeInstance newStateInstance = instanceForModelNode(stateNode); activateState(newStateInstance); } }
void QmlModelView::activateState(const QmlModelState &state) { if (debug) qDebug() << this << __FUNCTION__ << state; if (!state.isValid()) return; if (m_state == state) return; QmlModelState oldState = m_state; NodeInstance newStateInstance = instanceForModelNode(state.modelNode()); if (state.isBaseState()) { nodeInstanceView()->activateBaseState(); } else { nodeInstanceView()->activateState(newStateInstance); } }
void NodeInstanceView::restartProcess() { if (m_restartProcessTimerId) killTimer(m_restartProcessTimerId); if (model()) { delete nodeInstanceServer(); m_nodeInstanceServer = new NodeInstanceServerProxy(this, m_runModus, m_currentKit); connect(m_nodeInstanceServer.data(), SIGNAL(processCrashed()), this, SLOT(handleChrash())); if (!isSkippedRootNode(rootModelNode())) nodeInstanceServer()->createScene(createCreateSceneCommand()); ModelNode stateNode = currentStateNode(); if (stateNode.isValid() && stateNode.metaInfo().isSubclassOf("QtQuick.State", 1, 0)) { NodeInstance newStateInstance = instanceForModelNode(stateNode); activateState(newStateInstance); } } m_restartProcessTimerId = 0; }
void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data) { if ((node.isRootNode() && (name == "width" || name == "height")) || name.endsWith(PropertyName("@NodeInstance"))) { if (hasInstanceForModelNode(node)) { NodeInstance instance = instanceForModelNode(node); QVariant value = data; if (value.isValid()) { PropertyValueContainer container(instance.instanceId(), name, value, TypeName()); ChangeAuxiliaryCommand changeAuxiliaryCommand(QVector<PropertyValueContainer>() << container); nodeInstanceServer()->changeAuxiliaryValues(changeAuxiliaryCommand); } else { if (node.hasVariantProperty(name)) { PropertyValueContainer container(instance.instanceId(), name, node.variantProperty(name).value(), TypeName()); ChangeValuesCommand changeValueCommand(QVector<PropertyValueContainer>() << container); nodeInstanceServer()->changePropertyValues(changeValueCommand); } else if (node.hasBindingProperty(name)) { PropertyBindingContainer container(instance.instanceId(), name, node.bindingProperty(name).expression(), TypeName()); ChangeBindingsCommand changeValueCommand(QVector<PropertyBindingContainer>() << container); nodeInstanceServer()->changePropertyBindings(changeValueCommand); } } } } }