diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index cf5dd941500fe2514b8c864c8e862d2b9380e768..81a1dd18d6248dff9e9511d8a4cfc2c0415e88b7 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -636,6 +636,8 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, context->enterScope(astNode); QSet<QString> modelPropertyNames = QSet<QString>::fromList(modelNode.propertyNames()); + if (!modelNode.id().isEmpty()) + modelPropertyNames.insert(QLatin1String("id")); QList<UiObjectMember *> defaultPropertyItems; for (UiObjectMemberList *iter = astInitializer->members; iter; iter = iter->next) { @@ -744,7 +746,10 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, AbstractProperty modelProperty = modelNode.property(modelPropertyName); // property deleted. - differenceHandler.propertyAbsentFromQml(modelProperty); + if (modelPropertyName == QLatin1String("id")) + differenceHandler.idsDiffer(modelNode, QString()); + else + differenceHandler.propertyAbsentFromQml(modelProperty); } context->leaveScope(); diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index 1b40436aff6607348b72c4f3dcfd1ca9acdaba40..b3a36212ce4c1213a038ee9f8741e4b4e4fa35b7 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -5441,7 +5441,7 @@ void TestCore::testRewriterRemoveId() QVERIFY(view.data()); model->attachView(view.data()); - QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); + QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView(0, TestRewriterView::Amend)); testRewriterView->setTextModifier(&textModifier); model->attachView(testRewriterView.data()); @@ -5449,7 +5449,6 @@ void TestCore::testRewriterRemoveId() QVERIFY(rootModelNode.isValid()); QCOMPARE(rootModelNode.id(), QString("rect")); - QSKIP("Fix me!!!! Task BAUHAUS-780", SkipAll); // // remove id in text // diff --git a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp index b12c164a6de808a31e7799b8cb7000d1637261c2..eb3cf27b80b1d8a3ef7e8c8a630c5af9c99add6d 100644 --- a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp @@ -83,7 +83,9 @@ VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantPro return VariantProperty(); } -TestRewriterView::TestRewriterView(QObject *parent) : RewriterView(RewriterView::Validate, parent) +TestRewriterView::TestRewriterView(QObject *parent, + DifferenceHandling differenceHandling) + : RewriterView(differenceHandling, parent) { } diff --git a/tests/auto/qml/qmldesigner/coretests/testrewriterview.h b/tests/auto/qml/qmldesigner/coretests/testrewriterview.h index 0fa319f21994b111e6c63b2009e248060f1b9df4..c313fe5bed9cb6e1764a5374d34978b64e50ed94 100644 --- a/tests/auto/qml/qmldesigner/coretests/testrewriterview.h +++ b/tests/auto/qml/qmldesigner/coretests/testrewriterview.h @@ -53,7 +53,8 @@ class TestRewriterView : public RewriterView Q_OBJECT public: - TestRewriterView(QObject *parent = 0); + TestRewriterView(QObject *parent = 0, + DifferenceHandling differenceHandling = RewriterView::Validate); Internal::TestModelToTextMerger *modelToTextMerger() const; Internal::TextToModelMerger *textToModelMerger() const;