From 700975ade3bf051171aabab31fd7d95ca6dbf4ab Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Tue, 20 Jul 2010 15:19:57 +0200 Subject: [PATCH] QmlJS: ALlow users of the Rewriter to specify where to insert stuff --- src/libs/qmljs/qmljsrewriter.cpp | 15 +++++++++------ src/libs/qmljs/qmljsrewriter.h | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/libs/qmljs/qmljsrewriter.cpp b/src/libs/qmljs/qmljsrewriter.cpp index 35886ee4619..e48fda894dc 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 ce480856e42..fef26457748 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); -- GitLab