diff options
author | Marcus Tillmanns <[email protected]> | 2024-10-10 11:05:10 +0200 |
---|---|---|
committer | Marcus Tillmanns <[email protected]> | 2024-10-10 11:30:29 +0000 |
commit | ce9638d64cfe80ddf61b214d2ad4480f8a2f034b (patch) | |
tree | 16934506720e038e6d6288c3426347a685c8391b /src/libs/utils/textutils.cpp | |
parent | 41473eadd8cd1ba3c875b1784696bd243cef7712 (diff) |
Utils: Allow highlighting to be done asynchronously
Change-Id: Ief0e1ba2e2c32b6ad112f4adc9b582b03a521fad
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/libs/utils/textutils.cpp')
-rw-r--r-- | src/libs/utils/textutils.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libs/utils/textutils.cpp b/src/libs/utils/textutils.cpp index c3b2822ae3e..9840e653561 100644 --- a/src/libs/utils/textutils.cpp +++ b/src/libs/utils/textutils.cpp @@ -4,6 +4,7 @@ #include "textutils.h" #include "qtcassert.h" +#include <QPromise> #include <QRegularExpression> #include <QTextBlock> #include <QTextDocument> @@ -299,14 +300,20 @@ static HighlightCallback &codeHighlighter() return s_highlighter; } -QTextDocument *highlightCode(const QString &code, const QString &mimeType) +QFuture<QTextDocument *> highlightCode(const QString &code, const QString &mimeType) { if (const auto highlighter = codeHighlighter()) return highlighter(code, mimeType); QTextDocument *doc = new QTextDocument; doc->setPlainText(code); - return doc; + + QPromise<QTextDocument *> promise; + promise.start(); + promise.addResult(doc); + promise.finish(); + + return promise.future(); } void setCodeHighlighter(const HighlightCallback &highlighter) |