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",