DocumentChangeFeed
A document's changes, settled for the UI (opal-plan-edit-sessions §PES-3).
| Inherits | QObject |
In the namespace construct::document. Declared in src/libs/libconstruct/construct/document/DocumentChangeFeed.hpp.
Detailed description
The model emits a signal at every change, and the code that computes state from it — the compiler, the expression manager, the proxy mirror — listens there, because what it computes is read at once. A listener that only presents state to the engineer listens here instead:
- Outside a hold, the feed settles once per event-loop turn, however many changes the turn made. - While an OPAL plan holds the document (ConstructOpExecutor::beginHold()), the feed settles only at the hold's end and at a barrier (settle()), so a plan of thirty steps refreshes the panels once.
A settle re-emits what changed with the model's own signal signatures, net and in a fixed order: removed, replaced (as removed then added), added, updated, the per-instance changes, then the flags, with sceneChanged() last. Moving a listener here is a change of the object it connects to. changesSettled() carries the whole set, after the re-emits.
The rule for an adopter: a listener that presents state uses the feed; a listener that computes state other code reads at once uses the model. Selection is not here: the engineer can select while a plan holds the document, and the highlight must follow at once.