"Value changed since last pause" highlighter for the Watch and Variables trees.
More...
|
|
| LuaDebuggerChangeHighlightTracker ()=default |
| | Constructs a default LuaDebuggerChangeHighlightTracker.
|
| |
| void | refreshChangedValueBrushes (QTreeView *watchTree, QWidget *paletteFallback) |
| | Refreshes the brushes used for changed values based on the application palette.
|
| |
|
void | snapshotBaselinesOnPauseEntry () |
| | Snapshots the current values to baseline on a new pause entry.
|
| |
|
void | updatePauseEntryFrameIdentity () |
| | Updates the identity of the current frame on pause entry.
|
| |
| void | setPauseEntryStackLevel (int level) |
| | Sets the stack level for the pause entry.
|
| |
| void | setPauseEntryRefresh (bool active) |
| | Toggle the pause-entry refresh flag. The dialog turns it on for the duration of the pause-entry refresh sequence (so changed rows get the one-shot row flash on top of the persistent bold accent) and off again afterwards.
|
| |
| void | applyChangedVisuals (QObject *timerOwner, QStandardItem *anchor, bool changed) |
| | Stamp the anchor row with the change visuals; isPauseEntryRefresh_ is consulted internally so callers no longer have to thread it through.
|
| |
|
void | clearAllChangeBaselines () |
| | Clears all change baselines for watches and variables.
|
| |
|
void | clearWatchBaselines () |
| | Wipe watch-side baselines (root + child value maps and visited-parent sets). Variables-tree maps are kept; they are not tied to watch specs and remain valid across watch list rebuilds.
|
| |
| void | clearChangeBaselinesForWatchSpec (const QString &spec) |
| | Clears change baselines for a specific watch specification.
|
| |
| void | pruneChangeBaselinesToLiveWatchSpecs (QStandardItemModel *watchModel) |
| | Prunes baselines to keep only those present in the live watch specs.
|
| |
| bool | changeHighlightAllowed (int stackSelectionLevel) const |
| | Checks if change highlighting is allowed for a given stack level.
|
| |
| bool | observeWatchRootValue (const QString &rootKey, const QString &value) |
| | Record the latest value for a watch root keyed by the composite rootKey. Returns true if the new value differs from the previous baseline (a brand-new row never reads as changed).
|
| |
| bool | observeWatchChildParent (const QString &rootKey, const QString &parentPath) |
| | Record parentPath as a visited parent in the watch-child visited-parents set keyed by rootKey. Returns true if the same parent was visited at the previous pause; false on first-time expansion. Used as the flashNew gate for child rows.
|
| |
| bool | observeWatchChildValue (const QString &rootKey, const QString &childPath, const QString &value, bool parentVisited) |
| | Record the latest value for a watch-child row at rootKey/childPath. parentVisited is the result of observeWatchChildParent for the matching parent and gates the "child appeared since last pause" branch.
|
| |
| bool | observeVariablesParent (const QString &parentKey) |
| | Variables-tree counterpart to observeWatchChildParent.
|
| |
| bool | observeVariablesValue (const QString &variablesKey, const QString &value, bool parentVisited) |
| | Variables-tree counterpart to observeWatchChildValue.
|
| |
"Value changed since last pause" highlighter for the Watch and Variables trees.
Owns five related concerns:
- Baseline / current value maps for watch roots, watch children, and variables rows; rotated on pause entry via snapshotBaselinesOnPauseEntry.
- Visited-parent companion sets so a "first child appears under an
already-visited parent" event reads as a real change instead of the more common "first-time expansion" case.
- The "is this paint inside a pause-entry refresh?" gate that decides whether changes get the one-shot row-flash on top of the persistent bold-accent.
- The frame-identity check (pauseEntryFrame0MatchesPrev_) that suppresses the cue across calls / returns when the same numeric stack level points at a different Lua function than at the previous pause.
- The accent + flash brushes themselves, derived from the active palette in refreshChangedValueBrushes.
Callers do not poke at the baseline / current hashes directly; the observe* helpers update the current map and return whether the new value differs from baseline (also taking the parent-visited gate into account where appropriate). Then applyChangedVisuals stamps the row with the matching visuals using the current pause-entry flag.
That contract intentionally hides isPauseEntryRefresh_ and the value maps from the rest of the dialog so the controllers stay focused on "which row, which value" instead of "which map, which gate".