forked from qt-creator/qt-creator
Fixed id syncing when and id gets removed from the QML source.
Task-number: BAUHAUS-780 Reviewed-by: kkoehne
This commit is contained in:
@@ -636,6 +636,8 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
|
|||||||
context->enterScope(astNode);
|
context->enterScope(astNode);
|
||||||
|
|
||||||
QSet<QString> modelPropertyNames = QSet<QString>::fromList(modelNode.propertyNames());
|
QSet<QString> modelPropertyNames = QSet<QString>::fromList(modelNode.propertyNames());
|
||||||
|
if (!modelNode.id().isEmpty())
|
||||||
|
modelPropertyNames.insert(QLatin1String("id"));
|
||||||
QList<UiObjectMember *> defaultPropertyItems;
|
QList<UiObjectMember *> defaultPropertyItems;
|
||||||
|
|
||||||
for (UiObjectMemberList *iter = astInitializer->members; iter; iter = iter->next) {
|
for (UiObjectMemberList *iter = astInitializer->members; iter; iter = iter->next) {
|
||||||
@@ -744,6 +746,9 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
|
|||||||
AbstractProperty modelProperty = modelNode.property(modelPropertyName);
|
AbstractProperty modelProperty = modelNode.property(modelPropertyName);
|
||||||
|
|
||||||
// property deleted.
|
// property deleted.
|
||||||
|
if (modelPropertyName == QLatin1String("id"))
|
||||||
|
differenceHandler.idsDiffer(modelNode, QString());
|
||||||
|
else
|
||||||
differenceHandler.propertyAbsentFromQml(modelProperty);
|
differenceHandler.propertyAbsentFromQml(modelProperty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -5441,7 +5441,7 @@ void TestCore::testRewriterRemoveId()
|
|||||||
QVERIFY(view.data());
|
QVERIFY(view.data());
|
||||||
model->attachView(view.data());
|
model->attachView(view.data());
|
||||||
|
|
||||||
QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView());
|
QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView(0, TestRewriterView::Amend));
|
||||||
testRewriterView->setTextModifier(&textModifier);
|
testRewriterView->setTextModifier(&textModifier);
|
||||||
model->attachView(testRewriterView.data());
|
model->attachView(testRewriterView.data());
|
||||||
|
|
||||||
@@ -5449,7 +5449,6 @@ void TestCore::testRewriterRemoveId()
|
|||||||
QVERIFY(rootModelNode.isValid());
|
QVERIFY(rootModelNode.isValid());
|
||||||
QCOMPARE(rootModelNode.id(), QString("rect"));
|
QCOMPARE(rootModelNode.id(), QString("rect"));
|
||||||
|
|
||||||
QSKIP("Fix me!!!! Task BAUHAUS-780", SkipAll);
|
|
||||||
//
|
//
|
||||||
// remove id in text
|
// remove id in text
|
||||||
//
|
//
|
||||||
|
@@ -83,7 +83,9 @@ VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantPro
|
|||||||
return VariantProperty();
|
return VariantProperty();
|
||||||
}
|
}
|
||||||
|
|
||||||
TestRewriterView::TestRewriterView(QObject *parent) : RewriterView(RewriterView::Validate, parent)
|
TestRewriterView::TestRewriterView(QObject *parent,
|
||||||
|
DifferenceHandling differenceHandling)
|
||||||
|
: RewriterView(differenceHandling, parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -53,7 +53,8 @@ class TestRewriterView : public RewriterView
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TestRewriterView(QObject *parent = 0);
|
TestRewriterView(QObject *parent = 0,
|
||||||
|
DifferenceHandling differenceHandling = RewriterView::Validate);
|
||||||
|
|
||||||
Internal::TestModelToTextMerger *modelToTextMerger() const;
|
Internal::TestModelToTextMerger *modelToTextMerger() const;
|
||||||
Internal::TextToModelMerger *textToModelMerger() const;
|
Internal::TextToModelMerger *textToModelMerger() const;
|
||||||
|
Reference in New Issue
Block a user