Separate ChatButtonHelper from ChatDocumentHandler

This commit is contained in:
James Graham
2025-12-29 16:24:24 +00:00
parent 45163944d0
commit 22d7d90cf4
19 changed files with 606 additions and 434 deletions

View File

@@ -28,6 +28,5 @@ TestCase {
compare(documentHandler.underline, false);
compare(documentHandler.strikethrough, false);
compare(documentHandler.style, 0);
compare(documentHandler.currentListStyle, 0);
}
}

View File

@@ -34,11 +34,13 @@ public:
QQuickItem *textItem() const
{
return m_chatMarkdownHelper->textItem();
return m_chatMarkdownHelper->textItem()->textItem();
}
void setTextItem(QQuickItem *textItem)
{
m_chatMarkdownHelper->setTextItem(textItem);
auto textItemWrapper = new QmlTextItemWrapper(this);
textItemWrapper->setTextItem(textItem);
m_chatMarkdownHelper->setTextItem(textItemWrapper);
m_textItem->setTextItem(textItem);
}

View File

@@ -32,19 +32,19 @@ TestCase {
SignalSpy {
id: spyContentsChanged
target: qmlTextItemWrapper
signalName: "textDocumentContentsChanged"
signalName: "contentsChanged"
}
SignalSpy {
id: spyContentsChange
target: qmlTextItemWrapper
signalName: "textDocumentContentsChange"
signalName: "contentsChange"
}
SignalSpy {
id: spyCursor
target: qmlTextItemWrapper
signalName: "textDocumentCursorPositionChanged"
signalName: "cursorPositionChanged"
}
function test_item(): void {

View File

@@ -27,12 +27,9 @@ public:
{
Q_ASSERT(m_textItemWrapper);
connect(m_textItemWrapper, &QmlTextItemWrapper::textItemChanged, this, &QmlTextItemWrapperTestWrapper::textItemChanged);
connect(m_textItemWrapper, &QmlTextItemWrapper::textDocumentContentsChange, this, &QmlTextItemWrapperTestWrapper::textDocumentContentsChange);
connect(m_textItemWrapper, &QmlTextItemWrapper::textDocumentContentsChanged, this, &QmlTextItemWrapperTestWrapper::textDocumentContentsChanged);
connect(m_textItemWrapper,
&QmlTextItemWrapper::textDocumentCursorPositionChanged,
this,
&QmlTextItemWrapperTestWrapper::textDocumentCursorPositionChanged);
connect(m_textItemWrapper, &QmlTextItemWrapper::contentsChange, this, &QmlTextItemWrapperTestWrapper::contentsChange);
connect(m_textItemWrapper, &QmlTextItemWrapper::contentsChanged, this, &QmlTextItemWrapperTestWrapper::contentsChanged);
connect(m_textItemWrapper, &QmlTextItemWrapper::cursorPositionChanged, this, &QmlTextItemWrapperTestWrapper::cursorPositionChanged);
}
QQuickItem *textItem() const
@@ -83,9 +80,9 @@ public:
Q_SIGNALS:
void textItemChanged();
void textDocumentContentsChange(int position, int charsRemoved, int charsAdded);
void textDocumentContentsChanged();
void textDocumentCursorPositionChanged();
void contentsChange(int position, int charsRemoved, int charsAdded);
void contentsChanged();
void cursorPositionChanged();
private:
QPointer<QmlTextItemWrapper> m_textItemWrapper;