aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-07-01 12:15:15 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2020-07-01 12:34:53 +0200
commit38e0b279d9c36d029918a2d86575050d13778d86 (patch)
tree6ddef407d5160e0f635ad9eb0ca8c6cc0f8bc297 /tools
parentc50512fab3219f5d94a030227624f512756356c5 (diff)
qmlformat: Fix multiline bindings
Some bindings may turn multiline while formatting. This change makes sure this is handled properly. Fixes: QTBUG-85289 Pick-to: 5.15 Change-Id: I6df98b926d69a23480003c3d9705bc34c3dd0d5d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlformat/dumpastvisitor.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tools/qmlformat/dumpastvisitor.cpp b/tools/qmlformat/dumpastvisitor.cpp
index 859d399805..24d4dd454d 100644
--- a/tools/qmlformat/dumpastvisitor.cpp
+++ b/tools/qmlformat/dumpastvisitor.cpp
@@ -1162,8 +1162,20 @@ bool DumpAstVisitor::visit(UiScriptBinding *node) {
addLine(getComment(node, Comment::Location::Front));
+ bool multiline = !needsSemicolon(node->statement->kind);
+
+ if (multiline) {
+ m_indentLevel++;
+ }
+
QString statement = parseStatement(node->statement);
+ if (multiline) {
+ statement = "{\n" + formatLine(statement);
+ m_indentLevel--;
+ statement += formatLine("}", false);
+ }
+
QString result = parseUiQualifiedId(node->qualifiedId) + ":";
if (!statement.isEmpty())