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:
parent
76f97c42eb
commit
9ba1de0c1c
11
gui/main.qml
11
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",
|
||||
|
|
|
|||
Reference in New Issue