Skip to content
Snippets Groups Projects
Commit 2e949c70 authored by Kai Koehne's avatar Kai Koehne
Browse files

QmlJS Rewriter: Remove empty grouped properties

Also remove grouped properties if the last member is removed via removeObjectMember
(removeBindingByName already takes care of this).
parent 35e787e6
No related branches found
No related tags found
No related merge requests found
...@@ -490,6 +490,23 @@ void Rewriter::includeLeadingEmptyLine(const QString &source, int &start) ...@@ -490,6 +490,23 @@ void Rewriter::includeLeadingEmptyLine(const QString &source, int &start)
start = prevBlock.position(); start = prevBlock.position();
} }
void Rewriter::includeEmptyGroupedProperty(UiObjectDefinition *groupedProperty, UiObjectMember *memberToBeRemoved, int &start, int &end)
{
if (groupedProperty->qualifiedTypeNameId
&& groupedProperty->qualifiedTypeNameId->name->asString().at(0).isLower()) {
// grouped property
UiObjectMemberList *memberIter = groupedProperty->initializer->members;
while (memberIter) {
if (memberIter->member != memberToBeRemoved) {
return;
}
memberIter = memberIter->next;
}
start = groupedProperty->firstSourceLocation().begin();
end = groupedProperty->lastSourceLocation().end();
}
}
#if 0 #if 0
UiObjectMemberList *QMLRewriter::searchMemberToInsertAfter(UiObjectMemberList *members, const QStringList &propertyOrder) UiObjectMemberList *QMLRewriter::searchMemberToInsertAfter(UiObjectMemberList *members, const QStringList &propertyOrder)
{ {
...@@ -610,6 +627,9 @@ void Rewriter::removeObjectMember(UiObjectMember *member, UiObjectMember *parent ...@@ -610,6 +627,9 @@ void Rewriter::removeObjectMember(UiObjectMember *member, UiObjectMember *parent
if (UiArrayBinding *parentArray = cast<UiArrayBinding *>(parent)) { if (UiArrayBinding *parentArray = cast<UiArrayBinding *>(parent)) {
extendToLeadingOrTrailingComma(parentArray, member, start, end); extendToLeadingOrTrailingComma(parentArray, member, start, end);
} else { } else {
if (UiObjectDefinition *parentObjectDefinition = cast<UiObjectDefinition *>(parent)) {
includeEmptyGroupedProperty(parentObjectDefinition, member, start, end);
}
includeSurroundingWhitespace(m_originalText, start, end); includeSurroundingWhitespace(m_originalText, start, end);
} }
......
...@@ -78,7 +78,6 @@ public: ...@@ -78,7 +78,6 @@ public:
Range addObject(AST::UiObjectInitializer *ast, const QString &content); Range addObject(AST::UiObjectInitializer *ast, const QString &content);
Range addObject(AST::UiObjectInitializer *ast, const QString &content, AST::UiObjectMemberList *insertAfter); Range addObject(AST::UiObjectInitializer *ast, const QString &content, AST::UiObjectMemberList *insertAfter);
void removeObjectMember(AST::UiObjectMember *member, AST::UiObjectMember *parent); void removeObjectMember(AST::UiObjectMember *member, AST::UiObjectMember *parent);
static AST::UiObjectMemberList *searchMemberToInsertAfter(AST::UiObjectMemberList *members, const QStringList &propertyOrder); static AST::UiObjectMemberList *searchMemberToInsertAfter(AST::UiObjectMemberList *members, const QStringList &propertyOrder);
...@@ -87,6 +86,7 @@ public: ...@@ -87,6 +86,7 @@ public:
static bool includeSurroundingWhitespace(const QString &source, int &start, int &end); static bool includeSurroundingWhitespace(const QString &source, int &start, int &end);
static void includeLeadingEmptyLine(const QString &source, int &start); static void includeLeadingEmptyLine(const QString &source, int &start);
static void includeEmptyGroupedProperty(AST::UiObjectDefinition *groupedProperty, AST::UiObjectMember *memberToBeRemoved, int &start, int &end);
private: private:
void replaceMemberValue(AST::UiObjectMember *propertyMember, void replaceMemberValue(AST::UiObjectMember *propertyMember,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment