gui: preserve session tree expansion across agent switches

buildSessionTree() was clearing the tree and setting expanded=true
only for the active session, collapsing all other sessions whenever
an agent in a different session was selected.

Now snapshot expanded state before clearing and restore it, so manually
expanded sessions stay open across agent switches.
This commit is contained in:
Levi Neely 2026-08-01 16:16:55 +02:00
parent 76f97c42eb
commit 9ba1de0c1c
1 changed files with 9 additions and 2 deletions

View File

@ -97,14 +97,21 @@ ApplicationWindow {
function buildSessionTree() {
console.log("buildSessionTree: sessions count = " + ollie.sessions.length)
// Save expanded state before clearing
var expandedSessions = {}
for (var ei = 0; ei < sessionTreeModel.count; ++ei) {
var eitem = sessionTreeModel.get(ei)
if (eitem.type === "session" && eitem.expanded)
expandedSessions[eitem.id] = true
}
sessionTreeModel.clear()
var sessions = ollie.sessions
for (var i = 0; i < sessions.length; ++i) {
var sess = sessions[i]
var sid = sess.id || ""
console.log(" session[" + i + "] = " + sid)
// Auto-expand active session
var expanded = (sid === ollie.activeSessionId)
// Preserve previous expanded state; also auto-expand active session
var expanded = expandedSessions[sid] || (sid === ollie.activeSessionId)
// Add session node
sessionTreeModel.append({
type: "session",