diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-03-02 14:40:46 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-03-17 09:51:06 +0000 |
commit | 4eb7562c2933eddcd1b552042ec1d12eafd9afcb (patch) | |
tree | 753af3da35618532ca5f9439cc2ae3b56a0ec65b | |
parent | 0effff68a887784a9af129da6f798d4560bf5677 (diff) |
Do not use QTextDocument for project file updates
This class is used simply to include an empty line before Group we are
removing.
Change-Id: Ie7a5224c1f29dd67615cea70667a6c91cc2fee82
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/lib/corelib/api/qmljsrewriter.cpp | 27 | ||||
-rw-r--r-- | src/lib/corelib/api/qmljsrewriter.h | 2 |
2 files changed, 8 insertions, 21 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) diff --git a/src/lib/corelib/api/qmljsrewriter.h b/src/lib/corelib/api/qmljsrewriter.h index 3788035f2..7cba699e2 100644 --- a/src/lib/corelib/api/qmljsrewriter.h +++ b/src/lib/corelib/api/qmljsrewriter.h @@ -97,7 +97,7 @@ public: static AST::UiObjectMemberList *searchMemberToInsertAfter(AST::UiObjectMemberList *members, const QString &propertyName, const QStringList &propertyOrder); static bool includeSurroundingWhitespace(const QString &source, int &start, int &end); - static void includeLeadingEmptyLine(const QString &source, int &start); + static void includeLeadingEmptyLine(QStringView source, int &start); static void includeEmptyGroupedProperty(AST::UiObjectDefinition *groupedProperty, AST::UiObjectMember *memberToBeRemoved, int &start, int &end); private: |