Skip to content

Data Tables: Whole model, multi-row edit, button spacing; document the filters - #176

Merged
danyill merged 8 commits into
mainfrom
feat/data-tables-whole-model
Nov 7, 2026
Merged

danyill merged 8 commits into
mainfrom
feat/data-tables-whole-model

Conversation

@danyill

@danyill danyill commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #175. Stacked on #172 (filter bar), which is stacked on #151: merge those first. The documentation also describes #165/#170 (clipboard) and #168 (view key, stacked-elements warning), so merge those before this.

Whole model. A box in the Data Tables bar shows every level's blocks, nodes, events, Sparing and PM rows with a Level column (hidden otherwise; filterable, sortable, exported only when shown). Scope label: 'Whole model (N blocks across M levels)'. Rows of the open level stay editable; other levels are read-only (greyed, tooltip) because the edit paths act on the open level's elements. Decision: read-only plus a 'Go to level' menu entry that navigates by id (two levels can share a name). Source: the file rows, typed on demand; nothing is built on the canvas.

Multi-row edit. Select several rows, edit one cell: the column changes on every selected row (visible rows only, open-level rows only in Whole model), in one macro: one undo step and one rule-gate pass (a refusal reverts every row). Banner 'N rows selected. Editing a cell will change all N.'; status bar 'Set to on N rows'. First use per session asks 'Apply to N rows?' with Don't ask again (session only). A distribution change goes to all rows; a Param k edit skips rows without a k-th parameter and says so; names and computed columns are never multi-edited. Ctrl+D fills down; Ctrl+V on the grid pastes one value into the selected rows (a cell editor still pastes text). Covers Blocks (distribution, params, PM frequency), PM flags, Events (distro, param, stream), Nodes (k), Sparing (type, pool, resource). Not covered: New Spares/Order Interval (two coupled cells) and the keyed pool/trigger tables. On the full tip the window-level Ctrl+V route must offer the grid first; this branch only handles the grid's own key press.

Spacing. The Data Tables bar had no spacing (a nested layout under a zero-spacing parent). Fixed, and the same fix on the other button rows with that flaw (results bars, batch/analytic/empirical/phasing/help dialogs).

Docs. manual.adoc/html: Whole model, filter language (verified against table_filter.py), multi-row edit, copy/paste between models, stacked elements; RBDS_FORMAT.md: view key; KEYBOARD_SHORTCUTS.md: Ctrl+F, Ctrl+D, Ctrl+V on tables.

Tests: test_gui_data_tables_whole_model.py, test_gui_data_tables_multi_edit.py (23); related Data Tables/filter/export tests pass (145).


Merge order note. This branch has #160 (empty mypy baseline), #148, #149/#163, #165/#170/#174 merged into it, with their conflicts (data_tables.py, dialogs.py) already resolved here, so merge those first and this last of the Data Tables group. It also carries the glue between them: the window-level Ctrl+V offers a focused Data Tables grid its value before the canvas, and the grid's typing is clean against the empty baseline.

…e filters

Whole model shows every level's blocks, nodes, events, sparing and PM rows
with a Level column (read-only for levels that are not open; Go to level by
id). Selecting several rows and editing one cell changes the column on all
of them in one undo step and one rule-gate pass, with a banner, a first-use
confirmation, Ctrl+D fill down and paste-fill. The Data Tables bar and the
other button rows that had no spacing get it. The manual documents the
filter language, Whole model, multi-row edit, clipboard, stacked-element
warning, the view key and the new shortcuts.
When the shown rows did not fill the window (or none matched), rowAt answered
-1 and every row was treated as in view, so a selective filter built the cell
widgets of all the hidden rows: about 55 s on a 3,844-block model. Only rows
a filter leaves showing are realized now (0.04 s).
…-tables-whole-model

# Conflicts:
#	raptor/gui/ui/data_tables.py
…at/data-tables-whole-model

# Conflicts:
#	raptor/gui/ui/data_tables.py
#	raptor/gui/ui/dialogs.py
…ixes for the empty mypy baseline

The window-level Ctrl+V now gives a focused Data Tables grid the clipboard text
before the canvas. The grid's dict/paste_text typing is explicit so the branch is
clean against the emptied baseline of #160.
@danyill
danyill changed the base branch from feat/table-filter-bar to main November 7, 2026 08:05
@danyill
danyill merged commit 1764556 into main Nov 7, 2026
48 checks passed
@danyill
danyill deleted the feat/data-tables-whole-model branch November 7, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Data Tables: Whole model view, multi-row edit, button spacing, and docs for the filters

1 participant