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 StatesEditorView::removeState(int nodeId) { try { if (nodeId > 0 && hasModelNodeForInternalId(nodeId)) { ModelNode stateNode(modelNodeForInternalId(nodeId)); Q_ASSERT(stateNode.metaInfo().isSubclassOf("QtQuick.State", -1, -1)); NodeListProperty parentProperty = stateNode.parentProperty().toNodeListProperty(); if (parentProperty.count() <= 1) { setCurrentState(baseState()); } else if (parentProperty.isValid()){ int index = parentProperty.indexOf(stateNode); if (index == 0) setCurrentState(parentProperty.at(1)); else setCurrentState(parentProperty.at(index - 1)); } stateNode.destroy(); } } catch (RewritingException &e) { QMessageBox::warning(0, "Error", e.description()); } }
NodeListProperty::NodeListProperty(const NodeListProperty &property, AbstractView *view) : NodeAbstractProperty(property.name(), property.internalNode(), property.model(), view) { }
void StatesEditorView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode & /*movedNode*/, int /*oldIndex*/) { if (listProperty.isValid() && listProperty.parentModelNode().isRootNode() && listProperty.name() == "states") resetModel(); }