feat: Add reset button to clean message list to specific message (#168)

This commit is contained in:
Petr Mironychev
2025-04-18 19:06:17 +02:00
committed by GitHub
parent 711aa672f2
commit 7a33425d1a
4 changed files with 45 additions and 0 deletions

View File

@ -28,12 +28,19 @@ Rectangle {
property alias msgModel: msgCreator.model
property alias messageAttachments: attachmentsModel.model
property bool isUserMessage: false
property int messageIndex: -1
signal resetChatToMessage(int index)
height: msgColumn.implicitHeight + 10
radius: 8
color: isUserMessage ? palette.alternateBase
: palette.base
HoverHandler {
id: mouse
}
ColumnLayout {
id: msgColumn
@ -128,6 +135,22 @@ Rectangle {
visible: root.isUserMessage
}
QoAButton {
id: stopButtonId
anchors {
right: parent.right
bottom: parent.bottom
bottomMargin: 2
}
text: qsTr("ResetTo")
visible: root.isUserMessage && mouse.hovered
onClicked: function() {
root.resetChatToMessage(root.messageIndex)
}
}
component TextComponent : TextBlock {
required property var itemData
height: implicitHeight + 10

View File

@ -92,11 +92,19 @@ ChatRootView {
delegate: ChatItem {
required property var model
required property int index
width: ListView.view.width - scroll.width
msgModel: root.chatModel.processMessageContent(model.content)
messageAttachments: model.attachments
isUserMessage: model.roleType === ChatModel.User
messageIndex: index
onResetChatToMessage: function(index) {
messageInput.text = model.content
messageInput.cursorPosition = model.content.length
root.chatModel.resetModelTo(index)
}
}
header: Item {