static void syncNodeProperties(ModelNode &outputNode, const ModelNode &inputNode, const QHash<QString, QString> &idRenamingHash, AbstractView *view) { foreach (const NodeProperty &nodeProperty, inputNode.nodeProperties()) { ModelNode newNode = createNodeFromNode(nodeProperty.modelNode(), idRenamingHash, view); outputNode.nodeProperty(nodeProperty.name()).reparentHere(newNode); } }
ModelNode ModelMerger::insertModel(const ModelNode &modelNode) { RewriterTransaction transaction(view()->beginRewriterTransaction()); foreach (const Import &import, modelNode.model()->imports()) view()->model()->addImport(import); QHash<QString, QString> idRenamingHash; setupIdRenamingHash(modelNode, idRenamingHash, view()); qDebug() << idRenamingHash; ModelNode newNode(createNodeFromNode(modelNode, idRenamingHash, view())); return newNode; }
ModelNode ModelMerger::insertModel(const ModelNode &modelNode) { RewriterTransaction transaction(view()->beginRewriterTransaction(QByteArrayLiteral("ModelMerger::insertModel"))); QList<Import> newImports; foreach (const Import &import, modelNode.model()->imports()) { if (!view()->model()->hasImport(import, true, true)) newImports.append(import); } view()->model()->changeImports(newImports, QList<Import>()); QHash<QString, QString> idRenamingHash; setupIdRenamingHash(modelNode, idRenamingHash, view()); ModelNode newNode(createNodeFromNode(modelNode, idRenamingHash, view())); return newNode; }