diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index 7f83f652e75..bedea2314f5 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -491,7 +491,7 @@ void DesignDocument::paste() if (rootNode.type() == "empty") return; - if (rootNode.id() == "designer__Selection") { // pasting multiple objects + if (rootNode.id() == "__multi__selection__") { // pasting multiple objects currentModel()->attachView(&view); ModelNode targetNode; @@ -545,7 +545,7 @@ void DesignDocument::paste() }); } else { // pasting single object - rewriterView()->executeInTransaction("DesignDocument::paste1", [this, &view, selectedNodes, rootNode]() { + rewriterView()->executeInTransaction("DesignDocument::paste1", [this, &view, rootNode]() { currentModel()->attachView(&view); ModelNode pastedNode(view.insertModel(rootNode)); ModelNode targetNode; diff --git a/src/plugins/qmldesigner/components/integration/designdocumentview.cpp b/src/plugins/qmldesigner/components/integration/designdocumentview.cpp index 336fbd8439c..25b468fe23a 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentview.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentview.cpp @@ -141,23 +141,23 @@ void DesignDocumentView::fromText(const QString &text) inputModel->setFileUrl(model()->fileUrl()); QPlainTextEdit textEdit; QString imports; - foreach (const Import &import, model()->imports()) - imports += QStringLiteral("import ") + import.toString(true) + QLatin1Char(';') + QLatin1Char('\n'); + const auto modelImports = model()->imports(); + for (const Import &import : modelImports) + imports += "import " + import.toString(true) + QLatin1Char(';') + QLatin1Char('\n'); textEdit.setPlainText(imports + text); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer rewriterView(new RewriterView(RewriterView::Amend, nullptr)); - rewriterView->setCheckSemanticErrors(false); - rewriterView->setTextModifier(&modifier); - inputModel->setRewriterView(rewriterView.data()); + RewriterView rewriterView; + rewriterView.setCheckSemanticErrors(false); + rewriterView.setTextModifier(&modifier); + inputModel->setRewriterView(&rewriterView); - rewriterView->restoreAuxiliaryData(); + rewriterView.restoreAuxiliaryData(); - if (rewriterView->errors().isEmpty() && rewriterView->rootModelNode().isValid()) { - ModelMerger merger(this); + if (rewriterView.errors().isEmpty() && rewriterView.rootModelNode().isValid()) { try { - merger.replaceModel(rewriterView->rootModelNode()); + replaceModel(rewriterView.rootModelNode()); } catch(Exception &/*e*/) { /* e.showException(); Do not show any error if the clipboard contains invalid QML */ } @@ -237,13 +237,13 @@ void DesignDocumentView::copyModelNodes(const QList &nodesToCopy) Q_ASSERT(view.rootModelNode().type() != "empty"); view.toClipboard(); - } else { //multi items selected + } else { // multi items selected foreach (ModelNode node, view.rootModelNode().directSubModelNodes()) { node.destroy(); } view.changeRootNodeType("QtQuick.Rectangle", 2, 0); - view.rootModelNode().setIdWithRefactoring("designer__Selection"); + view.rootModelNode().setIdWithRefactoring("__multi__selection__"); foreach (const ModelNode &selectedNode, selectedNodes) { ModelNode newNode(view.insertModel(selectedNode)); diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h index 5eae2f221fa..9ecc5d7b988 100644 --- a/src/plugins/qmldesigner/designercore/include/rewriterview.h +++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h @@ -75,7 +75,7 @@ public: }; public: - RewriterView(DifferenceHandling differenceHandling, QObject *parent); + RewriterView(DifferenceHandling differenceHandling = RewriterView::Amend, QObject *parent = nullptr); ~RewriterView() override; void modelAttached(Model *model) override;