Utils: Create a reusable AnsiEscapeCodeHandler::setTextInEditor

Change-Id: Ic8ebe57287b08870e36e0a5cadbf3d322d14b2fe
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Orgad Shaneh
2024-08-06 09:39:51 +03:00
committed by Orgad Shaneh
parent 35df237df2
commit 6471572135
3 changed files with 22 additions and 11 deletions

View File

@@ -5,6 +5,8 @@
#include "qtcassert.h"
#include <QPlainTextEdit>
namespace Utils {
/*!
@@ -268,6 +270,20 @@ void AnsiEscapeCodeHandler::endFormatScope()
m_previousFormatClosed = true;
}
void AnsiEscapeCodeHandler::setTextInEditor(QPlainTextEdit *editor, const QString &text)
{
AnsiEscapeCodeHandler handler;
const QList<FormattedText> formattedTextList = handler.parseText(FormattedText(text));
editor->clear();
QTextCursor cursor = editor->textCursor();
cursor.beginEditBlock();
for (const auto &formattedChunk : formattedTextList)
cursor.insertText(formattedChunk.text, formattedChunk.format);
cursor.endEditBlock();
cursor.movePosition(QTextCursor::Start);
editor->document()->setModified(false);
}
void AnsiEscapeCodeHandler::setFormatScope(const QTextCharFormat &charFormat)
{
m_previousFormat = charFormat;