diff --git a/src/libs/qmljs/qmljsrewriter.cpp b/src/libs/qmljs/qmljsrewriter.cpp index 35886ee46198df00dbba9346ba45d86c83776ad8..e48fda894dc054094fa477a7c5f1e46af8a16e0f 100644 --- a/src/libs/qmljs/qmljsrewriter.cpp +++ b/src/libs/qmljs/qmljsrewriter.cpp @@ -55,11 +55,13 @@ Rewriter::Rewriter(const QString &originalText, void Rewriter::addBinding(AST::UiObjectInitializer *ast, const QString &propertyName, const QString &propertyValue, - BindingType bindingType) + BindingType bindingType, + UiObjectMemberList *insertAfter) { - UiObjectMemberList *insertAfter = searchMemberToInsertAfter(ast->members, - propertyName, - m_propertyOrder); + if (!insertAfter) + insertAfter = searchMemberToInsertAfter(ast->members, + propertyName, + m_propertyOrder); SourceLocation endOfPreviousMember; SourceLocation startOfNextMember; @@ -568,9 +570,10 @@ void Rewriter::appendToArrayBinding(UiArrayBinding *arrayBinding, m_changeSet->insert(insertionPoint, QLatin1String(",\n") + content); } -void Rewriter::addObject(UiObjectInitializer *ast, const QString &content) +void Rewriter::addObject(UiObjectInitializer *ast, const QString &content, UiObjectMemberList *insertAfter = 0) { - UiObjectMemberList *insertAfter = searchMemberToInsertAfter(ast->members, m_propertyOrder); + if (!insertAfter) + insertAfter = searchMemberToInsertAfter(ast->members, m_propertyOrder); int insertionPoint; QString textToInsert; diff --git a/src/libs/qmljs/qmljsrewriter.h b/src/libs/qmljs/qmljsrewriter.h index ce480856e422ade4775fb4abf40c44de1e074236..fef264577487c435294e69e7e85821b744af05e1 100644 --- a/src/libs/qmljs/qmljsrewriter.h +++ b/src/libs/qmljs/qmljsrewriter.h @@ -59,7 +59,8 @@ public: void addBinding(AST::UiObjectInitializer *ast, const QString &propertyName, const QString &propertyValue, - BindingType bindingType); + BindingType bindingType, + UiObjectMemberList *insertAfter = 0); void changeProperty(AST::UiObjectInitializer *ast, const QString &propertyName, @@ -70,7 +71,7 @@ public: void appendToArrayBinding(AST::UiArrayBinding *arrayBinding, const QString &content); - void addObject(AST::UiObjectInitializer *ast, const QString &content); + void addObject(AST::UiObjectInitializer *ast, const QString &content, UiObjectMemberList *insertAfter = 0); void removeObjectMember(AST::UiObjectMember *member, AST::UiObjectMember *parent); static AST::UiObjectMemberList *searchMemberToInsertAfter(AST::UiObjectMemberList *members, const QStringList &propertyOrder);