From 9ba1de0c1c251bef68bfa306af560f90bfe01448 Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:16:55 +0200 Subject: [PATCH] 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. --- gui/main.qml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gui/main.qml b/gui/main.qml index a322df8..4df275c 100644 --- a/gui/main.qml +++ b/gui/main.qml @@ -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",