Add tests for ChatMarkdownHelper and rework how formats are applied to make it more robust.

This commit is contained in:
James Graham
2025-12-27 13:24:26 +00:00
parent f31e9062e6
commit 45163944d0
13 changed files with 463 additions and 167 deletions

View File

@@ -4,24 +4,30 @@
#pragma once
#include <QObject>
#include <QQmlEngine>
#include "enums/richformat.h"
class QQuickItem;
class QTextDocument;
class ChatDocumentHandler;
class QmlTextItemWrapper;
class ChatMarkdownHelper : public QObject
{
Q_OBJECT
QML_ELEMENT
public:
explicit ChatMarkdownHelper(ChatDocumentHandler *parent);
explicit ChatMarkdownHelper(QObject *parent = nullptr);
QQuickItem *textItem() const;
void setTextItem(QQuickItem *textItem);
void handleExternalFormatChange();
Q_SIGNALS:
void textItemChanged();
void unhandledBlockFormat(RichFormat::Format format);
private:
enum State {
None,
@@ -29,8 +35,8 @@ private:
Started,
};
QTextDocument *document() const;
void connectDocument();
QPointer<QmlTextItemWrapper> m_textItem;
void connectTextItem();
State m_currentState = None;
int m_startPos = 0;