aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-03-02 14:40:46 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2021-03-17 09:51:06 +0000
commit4eb7562c2933eddcd1b552042ec1d12eafd9afcb (patch)
tree753af3da35618532ca5f9439cc2ae3b56a0ec65b
parent0effff68a887784a9af129da6f798d4560bf5677 (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.cpp27
-rw-r--r--src/lib/corelib/api/qmljsrewriter.h2
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: