N8 — Develop callbacks onto a global, so a panel can be declared twice #52
Notifications
Due Date
No due date set.
Blocks
#53 N9 — Three columns in the dock
dtourolle/DarkRoom
Reference: dtourolle/DarkRoom#52
Reference in New Issue
Block a user
Every develop panel forwards its callbacks and takes its inputs through the window root by hand, and each instantiation in
app.slintis twenty to forty lines. N9 declares each panel a second time, and copying that wiring is the kind of duplication that drifts.Panels
AdjustPanel,MaskPanel,SpotPanel,ComposePanel,TransferPanel,FocusPanel,HistogramPanel,InfoPanel.MaskPanelalone forwards about twenty callbacks.Deliverable
Readoutinadjust.slintis the precedent.window.global::<…>().on_…) instead of the window.ui/dr-ui/srcthat drive these callbacks through the window before starting; they move to the global and they size the ticket.Acceptance
app.slintforwards a callback by hand--test-threads=1; the parallel segfault is pre-existing)Spec:
docs/ui-navigation.mdN8. Plumbing only; no visible change.Implemented on branch
dev/develop-globals(commitfea5b1b), merged intointegrate/portrait-dock. One global per panel family (Develop, Capture, Levels, Peaking, Adjustments, Framing, Transfer, Masking, Repair, Steps); every develop panel in the column is nowName { }. Build, clippy and 639 tests pass on the merged branch; screenshots identical to before the change.Landed in
0a5eab0. Each panel family has a Slint global, Rust hooks the global rather than the window, and every panel's instantiation in the develop column is its name and a pair of braces. session.slint carries the two facts every family needed.