From cd004cdf98472f8caeb60bbe22fe97c2c7f8dd85 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@nokia.com> Date: Tue, 18 May 2010 14:45:54 +0200 Subject: [PATCH] QmlDesigner: avoid crash for Components and copy and paste We have to set the proper fileUrl on all models --- .../components/integration/designdocumentcontroller.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp index 3c693197693..5c38be2dcbd 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp @@ -461,6 +461,7 @@ void DesignDocumentController::copySelected() { QScopedPointer<Model> model(Model::create("import Qt 4.7; Qt/Rectangle")); model->setMetaInfo(m_d->model->metaInfo()); + model->setFileUrl(m_d->model->fileUrl()); Q_ASSERT(model); @@ -573,6 +574,8 @@ void DesignDocumentController::paste() if (rootNode.id() == "designer__Selection") { QList<ModelNode> selectedNodes = rootNode.allDirectSubModelNodes(); + qDebug() << rootNode; + qDebug() << selectedNodes; model->detachView(&view); m_d->model->attachView(&view); @@ -635,7 +638,9 @@ void DesignDocumentController::paste() QString defaultProperty(targetNode.metaInfo().defaultProperty()); scatterItem(pastedNode, targetNode); - targetNode.nodeListProperty(defaultProperty).reparentHere(pastedNode); + if (targetNode.nodeListProperty(defaultProperty).isValid()) { + targetNode.nodeListProperty(defaultProperty).reparentHere(pastedNode); + } view.setSelectedModelNodes(QList<ModelNode>() << pastedNode); } -- GitLab