initial commit for llm chat tab in sidebar

This commit is contained in:
2026-08-20 00:27:48 +02:00
parent d3e61efd86
commit 47bab21e22
22 changed files with 2085 additions and 9 deletions
@@ -0,0 +1,73 @@
pragma ComponentBehavior: Bound
import ZShell.Config
import ZShell.Llm
import QtQuick
import QtQuick.Controls
import Quickshell
import qs.Modules.Notifications.Sidebar
import qs.Components
import qs.Services
Item {
id: root
property bool chatOpen: false
required property Props props
anchors.fill: parent
anchors.margins: Tokens.padding.small
Component.onCompleted: {
if (root.props.inChat) {
stack.push(chatList);
stack.push(chatContent, {
"chatData": root.props.chatSession
});
} else
stack.push(chatList);
}
StackView {
id: stack
anchors.fill: parent
}
Component {
id: chatList
ChatList {
model: ScriptModel {
values: Chat.chats.values
}
onLoadChatRequest: chat => {
stack.push(chatContent, {
"chatData": chat
});
root.props.inChat = true;
root.props.chatSession = chat;
}
onNewChatRequest: {
const data = Chat.chats.insert();
stack.push(chatContent, {
"chatData": data
});
root.props.inChat = true;
root.props.chatSession = data;
}
}
}
Component {
id: chatContent
ChatContent {
onRequestClose: {
stack.pop();
root.props.inChat = false;
}
}
}
}