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:
parent
325870e38c
commit
1d2fffdcab
|
|
@ -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
|
||||
|
|
|
|||
Reference in New Issue