diff options
Diffstat (limited to 'src/lib/corelib/api/qmljsrewriter.cpp')
-rw-r--r-- | src/lib/corelib/api/qmljsrewriter.cpp | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/src/lib/corelib/api/qmljsrewriter.cpp b/src/lib/corelib/api/qmljsrewriter.cpp index 5551e5650..b7e573e07 100644 --- a/src/lib/corelib/api/qmljsrewriter.cpp +++ b/src/lib/corelib/api/qmljsrewriter.cpp @@ -41,10 +41,6 @@ #include <parser/qmljsast_p.h> -#include <QtGui/qtextobject.h> -#include <QtGui/qtextcursor.h> -#include <QtGui/qtextdocument.h> - namespace QbsQmlJS { using namespace AST; @@ -500,28 +496,19 @@ bool Rewriter::includeSurroundingWhitespace(const QString &source, int &start, i return paragraphFound; } -void Rewriter::includeLeadingEmptyLine(const QString &source, int &start) +void Rewriter::includeLeadingEmptyLine(QStringView source, int &start) { - QTextDocument doc(source); - if (start == 0) return; - if (doc.characterAt(start - 1) != QChar::ParagraphSeparator) - return; - - QTextCursor tc(&doc); - tc.setPosition(start); - const int blockNr = tc.blockNumber(); - if (blockNr == 0) + const qsizetype lineEnd = source.lastIndexOf(QChar::LineFeed, start); + if (lineEnd <= 0) return; - - const QTextBlock prevBlock = tc.block().previous(); - const QString trimmedPrevBlockText = prevBlock.text().trimmed(); - if (!trimmedPrevBlockText.isEmpty()) + const qsizetype lineStart = source.lastIndexOf(QChar::LineFeed, lineEnd - 1) + 1; + const auto line = source.mid(lineStart, lineEnd - lineStart); + if (!line.trimmed().isEmpty()) return; - - start = prevBlock.position(); + start = lineStart; } void Rewriter::includeEmptyGroupedProperty(UiObjectDefinition *groupedProperty, UiObjectMember *memberToBeRemoved, int &start, int &end) |