From 6fe4f028a44e3ac06a9fe67ff0196419b0ebc0cb Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Tue, 13 Oct 2020 08:59:20 +0200 Subject: [PATCH] Designer: Relax type difference check on node sync Task-number: QDS-2535 Change-Id: Ic762d40f9088d287db4d7c0c88bb7817b2bf6475 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designercore/model/rewriteaction.cpp | 4 +++- .../qmldesigner/designercore/model/texttomodelmerger.cpp | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/rewriteaction.cpp b/src/plugins/qmldesigner/designercore/model/rewriteaction.cpp index 106341043db..2b12f03b2b5 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteaction.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriteaction.cpp @@ -181,8 +181,10 @@ bool ChangePropertyRewriteAction::execute(QmlRefactoring &refactoring, ModelNode { if (m_sheduledInHierarchy) { const int nodeLocation = positionStore.nodeOffset(m_property.parentModelNode()); - if (nodeLocation < 0) + if (nodeLocation < 0) { + qWarning() << "*** ChangePropertyRewriteAction::execute ignored. Invalid node location"; return true; + } bool result = false; if (m_property.isDefaultProperty()) { diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 61f8d5e0c3e..6c795f1d064 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -1119,8 +1119,11 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, differenceHandler.typeDiffers(isRootNode, modelNode, typeName, majorVersion, minorVersion, astNode, context); - if (!isRootNode) + if (!isRootNode && modelNode.majorVersion() != -1 && modelNode.minorVersion() != -1) { + qWarning() << "Preempting Node sync. Type differs" << modelNode << + modelNode.majorVersion() << modelNode.minorVersion(); return; // the difference handler will create a new node, so we're done. + } } if (isComponentType(typeName) || isImplicitComponent)