Repository navigation
M1: virtualized inline IEC 61850 detail grid and canonical selection - #155
Conversation
Add virtualized Qt detail model with bounded lazy expansion, selection, current-value updates, and large-model regression gates. No extra semantic tree, implicit MMS read, or protocol-runtime changes.
Use canonical detail projection with click-to-select and inline disclosure without automatic MMS reads. Lock renderer interaction regression.
Replace full-model reset on ordinary branch expansion with bounded insert/remove notifications. Keep stable selection when collapsing a selected descendant; rebuild only when a capped projection must be rehydrated.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
After a user selects an LD/LN/DO in the inline pane, MmsLiveDetailModel::select() updates selectedNode_ while intentionally retaining the current detail root. If the user then clicks that same node in the left Engineering Explorer, IedBrowserNavigation.qml calls selectRow(), but its equality check returns before this setRoot() call, leaving the right-hand header and rows on the old ancestor until another node is selected. Ensure a same-node tree selection can still promote that node to the detail root.
arstack61850/apps/ied_simulator/qml/BrowserDataModelPane.qml
Lines 183 to 186 in 0f9fe86
The new MmsLiveDetailModel does not define a childCount role, so this expression reads an undefined property. For branch nodes without a value or description—such as a data object with no inferred CDC—the intended "N item(s)" fallback never appears and the UI displays — instead (potentially with a QML missing-property warning). Add the count role to the detail model or derive the count from an exposed property.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Baseline & intent
Stacked on PR #152 exact head
27c9d40c5bb2917089e93b6e30daf765da50ee5d. This is the native Qtapps/ied_simulatorWorkbench; no web UI, SMV injector, ESP32-P4 firmware, or protocol TX changes.M1 implementation
MmsLiveDetailModel, a bounded (max 4096 rows)QAbstractListModelprojection over stable canonicalMmsLiveTreeModelnode indices; there is no second IEC 61850 model and no per-delegateQVariantMapmaterialization.Read/Read Allexplicit; navigating the detail tree no longer issues unintended MMS reads.Risk controls and remaining scope
Acceptance