forked from qt-creator/qt-creator
QmlDesigner: avoid crash for Components and copy and paste
We have to set the proper fileUrl on all models
This commit is contained in:
@@ -461,6 +461,7 @@ void DesignDocumentController::copySelected()
|
|||||||
{
|
{
|
||||||
QScopedPointer<Model> model(Model::create("import Qt 4.7; Qt/Rectangle"));
|
QScopedPointer<Model> model(Model::create("import Qt 4.7; Qt/Rectangle"));
|
||||||
model->setMetaInfo(m_d->model->metaInfo());
|
model->setMetaInfo(m_d->model->metaInfo());
|
||||||
|
model->setFileUrl(m_d->model->fileUrl());
|
||||||
|
|
||||||
Q_ASSERT(model);
|
Q_ASSERT(model);
|
||||||
|
|
||||||
@@ -573,6 +574,8 @@ void DesignDocumentController::paste()
|
|||||||
|
|
||||||
if (rootNode.id() == "designer__Selection") {
|
if (rootNode.id() == "designer__Selection") {
|
||||||
QList<ModelNode> selectedNodes = rootNode.allDirectSubModelNodes();
|
QList<ModelNode> selectedNodes = rootNode.allDirectSubModelNodes();
|
||||||
|
qDebug() << rootNode;
|
||||||
|
qDebug() << selectedNodes;
|
||||||
model->detachView(&view);
|
model->detachView(&view);
|
||||||
m_d->model->attachView(&view);
|
m_d->model->attachView(&view);
|
||||||
|
|
||||||
@@ -635,7 +638,9 @@ void DesignDocumentController::paste()
|
|||||||
QString defaultProperty(targetNode.metaInfo().defaultProperty());
|
QString defaultProperty(targetNode.metaInfo().defaultProperty());
|
||||||
|
|
||||||
scatterItem(pastedNode, targetNode);
|
scatterItem(pastedNode, targetNode);
|
||||||
|
if (targetNode.nodeListProperty(defaultProperty).isValid()) {
|
||||||
targetNode.nodeListProperty(defaultProperty).reparentHere(pastedNode);
|
targetNode.nodeListProperty(defaultProperty).reparentHere(pastedNode);
|
||||||
|
}
|
||||||
|
|
||||||
view.setSelectedModelNodes(QList<ModelNode>() << pastedNode);
|
view.setSelectedModelNodes(QList<ModelNode>() << pastedNode);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user