Refactor message block model to use root.messageBlocks

This commit is contained in:
菜叶片(ItsSunshineXD)
2025-11-14 13:22:09 +08:00
committed by GitHub
parent b5ccddf34d
commit c369db75eb
@@ -285,48 +285,34 @@ Rectangle {
} }
} }
} }
Repeater { Repeater {
model: ScriptModel { model: root.messageBlocks
values: Array.from({ length: root.messageBlocks.length }, (msg, i) => {
return ({
type: root.messageBlocks[i].type
})
});
}
delegate: DelegateChooser { delegate: DelegateChooser {
id: messageDelegate id: messageDelegate
role: "type" role: "type"
DelegateChoice { roleValue: "code"; MessageCodeBlock { DelegateChoice { roleValue: "code"; MessageCodeBlock {
required property int index
property var thisBlock: root.messageBlocks[index]
editing: root.editing editing: root.editing
renderMarkdown: root.renderMarkdown renderMarkdown: root.renderMarkdown
enableMouseSelection: root.enableMouseSelection enableMouseSelection: root.enableMouseSelection
segmentContent: thisBlock.content segmentContent: modelData.content
segmentLang: thisBlock.lang segmentLang: modelData.lang
messageData: root.messageData messageData: root.messageData
} } } }
DelegateChoice { roleValue: "think"; MessageThinkBlock { DelegateChoice { roleValue: "think"; MessageThinkBlock {
required property int index
property var thisBlock: root.messageBlocks[index]
editing: root.editing editing: root.editing
renderMarkdown: root.renderMarkdown renderMarkdown: root.renderMarkdown
enableMouseSelection: root.enableMouseSelection enableMouseSelection: root.enableMouseSelection
segmentContent: thisBlock.content segmentContent: modelData.content
messageData: root.messageData messageData: root.messageData
done: root.messageData?.done ?? false done: root.messageData?.done ?? false
completed: thisBlock.completed ?? false completed: modelData.completed ?? false
} } } }
DelegateChoice { roleValue: "text"; MessageTextBlock { DelegateChoice { roleValue: "text"; MessageTextBlock {
required property int index
property var thisBlock: root.messageBlocks[index]
editing: root.editing editing: root.editing
renderMarkdown: root.renderMarkdown renderMarkdown: root.renderMarkdown
enableMouseSelection: root.enableMouseSelection enableMouseSelection: root.enableMouseSelection
segmentContent: thisBlock.content segmentContent: modelData.content
messageData: root.messageData messageData: root.messageData
done: root.messageData?.done ?? false done: root.messageData?.done ?? false
forceDisableChunkSplitting: root.messageData?.content.includes("```") ?? true forceDisableChunkSplitting: root.messageData?.content.includes("```") ?? true