QmlJSEditor: Support dragging of functions

Currently you can drag around items and properties.
Extend this by JS functions.

Fixes: QTCREATORBUG-21993
Change-Id: I2934450cbaf8646620b43ce33fdb523b5d2803ab
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Christian Stenger
2020-05-26 18:02:38 +02:00
parent b176a24091
commit e2ae2ad41d
4 changed files with 34 additions and 17 deletions

View File

@@ -649,17 +649,20 @@ Rewriter::Range Rewriter::addObject(UiArrayBinding *ast, const QString &content,
return Range(insertionPoint, insertionPoint);
}
void Rewriter::removeObjectMember(UiObjectMember *member, UiObjectMember *parent)
void Rewriter::removeObjectMember(Node *member, UiObjectMember *parent)
{
int start = member->firstSourceLocation().offset;
int end = member->lastSourceLocation().end();
if (UiArrayBinding *parentArray = cast<UiArrayBinding *>(parent)) {
extendToLeadingOrTrailingComma(parentArray, member, start, end);
} else {
if (UiObjectDefinition *parentObjectDefinition = cast<UiObjectDefinition *>(parent))
includeEmptyGroupedProperty(parentObjectDefinition, member, start, end);
includeSurroundingWhitespace(m_originalText, start, end);
auto uiObjMember = member->uiObjectMemberCast();
if (uiObjMember) {
if (UiArrayBinding *parentArray = cast<UiArrayBinding *>(parent)) {
extendToLeadingOrTrailingComma(parentArray, uiObjMember, start, end);
} else {
if (UiObjectDefinition *parentObjectDefinition = cast<UiObjectDefinition *>(parent))
includeEmptyGroupedProperty(parentObjectDefinition, uiObjMember, start, end);
includeSurroundingWhitespace(m_originalText, start, end);
}
}
includeLeadingEmptyLine(m_originalText, start);

View File

@@ -75,7 +75,7 @@ public:
Range addObject(AST::UiArrayBinding *ast, const QString &content);
Range addObject(AST::UiArrayBinding *ast, const QString &content, AST::UiArrayMemberList *insertAfter);
void removeObjectMember(AST::UiObjectMember *member, AST::UiObjectMember *parent);
void removeObjectMember(AST::Node *member, AST::UiObjectMember *parent);
static AST::UiObjectMemberList *searchMemberToInsertAfter(AST::UiObjectMemberList *members, const QStringList &propertyOrder);
static AST::UiArrayMemberList *searchMemberToInsertAfter(AST::UiArrayMemberList *members, const QStringList &propertyOrder);