From c369db75ebd78c40432acddb30b81b6e387a6d8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=9C=E5=8F=B6=E7=89=87=28ItsSunshineXD=29?= <61444298+CNMrSunshine@users.noreply.github.com> Date: Fri, 14 Nov 2025 13:22:09 +0800 Subject: [PATCH 1/3] Refactor message block model to use root.messageBlocks --- .../ii/sidebarLeft/aiChat/AiMessage.qml | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml index 74d5c5f6a..46a87eacb 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml @@ -285,48 +285,34 @@ Rectangle { } } } - Repeater { - model: ScriptModel { - values: Array.from({ length: root.messageBlocks.length }, (msg, i) => { - return ({ - type: root.messageBlocks[i].type - }) - }); - } - + model: root.messageBlocks delegate: DelegateChooser { id: messageDelegate role: "type" DelegateChoice { roleValue: "code"; MessageCodeBlock { - required property int index - property var thisBlock: root.messageBlocks[index] editing: root.editing renderMarkdown: root.renderMarkdown enableMouseSelection: root.enableMouseSelection - segmentContent: thisBlock.content - segmentLang: thisBlock.lang + segmentContent: modelData.content + segmentLang: modelData.lang messageData: root.messageData } } DelegateChoice { roleValue: "think"; MessageThinkBlock { - required property int index - property var thisBlock: root.messageBlocks[index] editing: root.editing renderMarkdown: root.renderMarkdown enableMouseSelection: root.enableMouseSelection - segmentContent: thisBlock.content + segmentContent: modelData.content messageData: root.messageData done: root.messageData?.done ?? false - completed: thisBlock.completed ?? false + completed: modelData.completed ?? false } } DelegateChoice { roleValue: "text"; MessageTextBlock { - required property int index - property var thisBlock: root.messageBlocks[index] editing: root.editing renderMarkdown: root.renderMarkdown enableMouseSelection: root.enableMouseSelection - segmentContent: thisBlock.content + segmentContent: modelData.content messageData: root.messageData done: root.messageData?.done ?? false forceDisableChunkSplitting: root.messageData?.content.includes("```") ?? true From 2e5be9023744af7fe8120665b0ac2cb267dad4e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=9C=E5=8F=B6=E7=89=87=28ItsSunshineXD=29?= <61444298+CNMrSunshine@users.noreply.github.com> Date: Fri, 14 Nov 2025 13:22:25 +0800 Subject: [PATCH 2/3] Fix segmentContent property assignment in MessageThinkBlock --- .../ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml index 1463c6e60..ee00ffdff 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/MessageThinkBlock.qml @@ -156,7 +156,6 @@ Item { property bool editing: root.editing property bool renderMarkdown: root.renderMarkdown property bool enableMouseSelection: root.enableMouseSelection - property string segmentContent: root.segmentContent property var messageData: root.messageData property bool done: root.done @@ -165,8 +164,9 @@ Item { anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom + segmentContent: root.segmentContent } } } } -} \ No newline at end of file +} From bf225d6de2715748534c34053434838fd85ed5db Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 14 Nov 2025 09:38:10 +0100 Subject: [PATCH 3/3] Change model to ScriptModel for messageBlocks --- .../quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml index 46a87eacb..487665851 100644 --- a/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml +++ b/dots/.config/quickshell/ii/modules/ii/sidebarLeft/aiChat/AiMessage.qml @@ -286,7 +286,9 @@ Rectangle { } } Repeater { - model: root.messageBlocks + model: ScriptModel { + values: root.messageBlocks + } delegate: DelegateChooser { id: messageDelegate role: "type"