From 79cbc07b29eab23dc148ae2ba0173dd26296ed87 Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Tue, 25 May 2010 17:32:39 +0200
Subject: [PATCH] Fixed superfluous (and erroneous) semi-colon insertion.

Bug: BAUHAUS-674
---
 .../designercore/filemanager/addpropertyvisitor.cpp           | 4 ++--
 .../qmldesigner/designercore/filemanager/addpropertyvisitor.h | 2 +-
 .../designercore/model/rewriteactioncompressor.cpp            | 2 +-
 tests/auto/qml/qmldesigner/coretests/testcore.cpp             | 2 --
 4 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
index 52687f34f9c..d2b1fc81fbe 100644
--- a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
+++ b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp
@@ -112,12 +112,12 @@ void AddPropertyVisitor::addInMembers(QmlJS::AST::UiObjectInitializer *initializ
     if (isOneLiner) {
         if (insertAfter == 0) { // we're inserting after an lbrace
             if (initializer->members) { // we're inserting before a member (and not the rbrace)
-                needsTrailingSemicolon = true;
+                needsTrailingSemicolon = m_propertyType == QmlRefactoring::ScriptBinding;
             }
         } else { // we're inserting after a member, not after the lbrace
             if (endOfPreviousMember.isValid()) { // there already is a semicolon after the previous member
                 if (insertAfter->next && insertAfter->next->member) { // and the after us there is a member, not an rbrace, so:
-                    needsTrailingSemicolon = true;
+                    needsTrailingSemicolon = m_propertyType == QmlRefactoring::ScriptBinding;
                 }
             } else { // there is no semicolon after the previous member (probably because there is an rbrace after us/it, so:
                 needsPreceedingSemicolon = true;
diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h
index d82bbcd60a4..5cb454da1d9 100644
--- a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h
+++ b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h
@@ -58,7 +58,7 @@ private:
     quint32 m_parentLocation;
     QString m_name;
     QString m_value;
-    QmlDesigner::QmlRefactoring::PropertyType m_propertyType;
+    QmlRefactoring::PropertyType m_propertyType;
     QStringList m_propertyOrder;
 };
 
diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp
index b2af209ae5a..d3e52f12731 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp
@@ -108,7 +108,7 @@ void RewriteActionCompressor::compressImports(QList<RewriteAction *> &actions) c
 
 void RewriteActionCompressor::compressRereparentActions(QList<RewriteAction *> &actions) const
 {
-    QMap<ModelNode, ReparentNodeRewriteAction *> reparentedNodes;
+    QHash<ModelNode, ReparentNodeRewriteAction *> reparentedNodes;
 
     QMutableListIterator<RewriteAction*> iter(actions);
     iter.toBack();
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
index eaeeb0d2e2f..f980c55f1f6 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
@@ -804,8 +804,6 @@ void TestCore::testRewriterForGradientMagic()
                                   "    }\n"
                                   "}");
 
-    QSKIP("See BAUHAUS-674", SkipAll);
-
     QPlainTextEdit textEdit;
     textEdit.setPlainText(qmlString);
     NotIndentingTextEditModifier modifier(&textEdit);
-- 
GitLab