SyntaxHighlighter: Connect signal to this not to document

Change-Id: I4e76c4e06f385075d64b9fee1eb71d6d5212935b
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Artem Sokolovskii
2024-01-08 11:26:44 +01:00
parent fcb752ff9c
commit 0618df9ea2
2 changed files with 24 additions and 22 deletions

View File

@@ -136,8 +136,12 @@ BaseSyntaxHighlighterRunner::BaseSyntaxHighlighterRunner(
BaseSyntaxHighlighterRunner::~BaseSyntaxHighlighterRunner() = default;
void BaseSyntaxHighlighterRunner::applyFormatRanges(const SyntaxHighlighter::Result &result)
void BaseSyntaxHighlighterRunner::applyFormatRanges(const QList<SyntaxHighlighter::Result> &results)
{
if (m_document == nullptr)
return;
for (const SyntaxHighlighter::Result &result : results) {
m_syntaxInfoUpdated = result.m_state;
if (m_syntaxInfoUpdated == SyntaxHighlighter::State::Done) {
emit highlightingFinished();
@@ -157,6 +161,7 @@ void BaseSyntaxHighlighterRunner::applyFormatRanges(const SyntaxHighlighter::Res
m_document->markContentsDirty(docBlock.position(), docBlock.length());
foldValidator.process(docBlock);
}
}
}
void BaseSyntaxHighlighterRunner::changeDocument(int from, int charsRemoved, int charsAdded)
@@ -249,11 +254,8 @@ ThreadedSyntaxHighlighterRunner::ThreadedSyntaxHighlighterRunner(SyntaxHighLight
m_document = document;
connect(d.get(),
&SyntaxHighlighterRunnerPrivate::resultsReady,
document,
[this](const QList<SyntaxHighlighter::Result> &result) {
for (const SyntaxHighlighter::Result &res : result)
applyFormatRanges(res);
});
this,
&ThreadedSyntaxHighlighterRunner::applyFormatRanges);
changeDocument(0, 0, document->characterCount());
connect(document,

View File

@@ -58,7 +58,7 @@ signals:
protected:
std::unique_ptr<SyntaxHighlighterRunnerPrivate> d;
QPointer<QTextDocument> m_document = nullptr;
void applyFormatRanges(const SyntaxHighlighter::Result &result);
void applyFormatRanges(const QList<SyntaxHighlighter::Result> &results);
void changeDocument(int from, int charsRemoved, int charsAdded);
SyntaxHighlighter::State m_syntaxInfoUpdated = SyntaxHighlighter::State::Done;