gui: persist prompt draft text per session

When switching between sessions, the draft text in the prompt
is saved and restored. Each pane maintains a _drafts map keyed
by session ID, so switching away and back preserves whatever
was typed.
This commit is contained in:
Levi Neely 2026-07-27 09:09:24 +02:00
parent 325870e38c
commit 1d2fffdcab
1 changed files with 15 additions and 0 deletions

View File

@ -23,13 +23,25 @@ Item {
property string paneCwd: ""
property int chatOffset: 0
// Per-session draft text storage
property var _drafts: ({})
property string _prevSessionId: ""
// Fetch chat when session changes
onSessionIdChanged: {
// Save draft from previous session
if (_prevSessionId !== "") {
_drafts[_prevSessionId] = panePrompt.text
}
paneModel.rawText = ""
chatOffset = 0
paneState = "idle"
paneCwd = ""
if (sessionId !== "") {
// Restore draft for new session (or empty)
panePrompt.text = _drafts[sessionId] || ""
// Fetch initial chat and config
let chat = dbus.getChat(sessionId, 0)
if (chat) {
@ -40,7 +52,10 @@ Item {
if (cfg && cfg.cwd) paneCwd = cfg.cwd
let st = dbus.getState(sessionId)
if (st) paneState = st
} else {
panePrompt.text = ""
}
_prevSessionId = sessionId
}
// Listen for D-Bus signals filtered to our session