diff --git a/gui/main.qml b/gui/main.qml index 3aa8828..114e778 100644 --- a/gui/main.qml +++ b/gui/main.qml @@ -284,6 +284,8 @@ ApplicationWindow { var agents = sess.agents || [] var agentCount = agents.length var displayLabel = agentCount > 0 ? sessionName + " (" + agentCount + ")" : sessionName + var isPaused = sess.paused || false + var wasExpanded = sessionExpandedCache[sessionId] !== undefined ? sessionExpandedCache[sessionId] : true // Update session properties (use QML-computed color, avoids C++ call) sessionTreeModel.setProperty(sessionIdx, "displayName", displayLabel) @@ -291,6 +293,7 @@ ApplicationWindow { sessionTreeModel.setProperty(sessionIdx, "state", sess.state || "") sessionTreeModel.setProperty(sessionIdx, "model", sess.model || "") sessionTreeModel.setProperty(sessionIdx, "connectionColor", computeConnectionColor(sess)) + sessionTreeModel.setProperty(sessionIdx, "paused", isPaused) // Build agent lookup var newAgentIds = {} @@ -310,6 +313,7 @@ ApplicationWindow { sessionTreeModel.setProperty(idx, "state", agent.state || "idle") sessionTreeModel.setProperty(idx, "connected", agent.connected) sessionTreeModel.setProperty(idx, "displayName", agent.name) + sessionTreeModel.setProperty(idx, "parentPaused", isPaused) } else { // Remove agent sessionTreeModel.remove(idx) @@ -343,7 +347,9 @@ ApplicationWindow { level: 1, state: ag.state || "idle", connected: ag.connected, - displayName: ag.name + displayName: ag.name, + parentExpanded: wasExpanded, + parentPaused: isPaused }) } } @@ -1129,7 +1135,7 @@ ApplicationWindow { return "#9e9e9e" } // Agent: gray if parent session is paused - if (parentPaused) return "#9e9e9e" + if (parentPaused === true) return "#9e9e9e" // Agent: use state role from model var s = state || "idle" if (s === "idle") return "#4caf50"