fix: the trigger stays editable while it is off, and the locked pane says "stream"
Two things the lock got wrong, and they are the same mistake seen twice: trigger-off was treated as "the
pane is disabled".
**The configuration was unreachable exactly when it was wanted.** `on_trigger_toggled()` set the trigger
*body* insensitive with the mode — a rule carried over from the five-revealer sidebar, where a closed pane
had nothing to edit. A trigger is configured *before* it is switched on, so switching it off to change it,
or to read what it is set to, is the ordinary way to work. The body is now never disabled; only the
*cursors'* readout still is, which is the pane whose content has nothing to show with the instruments off.
**The locked pane described a trigger that was not running.** With trigger mode off the summary is one
line — `mode: stream (trigger off)` — because the four lines it used to show (signal, condition, level,
mode) describe a trigger that is not there. With the trigger on it is those four plus whatever is not at
its default (`noise band`, `HF reject`, `pre-trigger`, `hold-off`).
The reading changes with it: `trigger panel sensitive …=1` is now a **regression guard** rather than a
state — the trigger's body is always live, so a `0` there means the settings have been locked out again.
Verified in both states, from sessions whose only difference is `trigger_enabled`:
panes: trigger=locked signals=locked body_visible=0 summary='mode: stream (trigger off)'
panes: trigger=locked signals=locked body_visible=0 summary='signal: square | condition: window, rising | level: 0.3 .. 0.6 | mode: single | pre-trigger: 20 %'
trigger panel sensitive before the probe toggled it: 1
The locked trigger pane is 72 px with the trigger off and 192 px with it on. Docs: the invariants' rule
for which body is disabled and why the trigger's is not, the `summary`'s two forms with what each means,
the README's deviation note, and the second `panes:` line renamed to say what it is — the line as the
probe found it, because only a run whose *session* has the trigger off shows the stream form.
This commit is contained in:
1 parent
4f4851f4e3
commit
796dda4ad5
7 files changed
+48
-15
No files matched your search
@@ -166,9 +166,13 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
|
||||
heights, so one shared scroller would leave a switch scrolled where the new page never asked to
|
||||
be). The reason is the one this trap teaches: five sections competing for one 320 px column left
|
||||
every one of them short of room. A *feature's* on/off is no longer a visibility at all -- the
|
||||
trigger's and the cursors' toggles set their pane's **body** insensitive, so the pane stays where it
|
||||
is and the settings you are about to switch back on do not vanish while you look for them. The *body*
|
||||
and not the pane, because each pane's heading carries its own switch (see the next bullet). The
|
||||
**cursors'** toggle sets its pane's **body** insensitive -- the readout has nothing to show with the
|
||||
instruments off -- and the *body* and not the pane, because the pane's heading carries its own switch
|
||||
(see the next bullet). The **trigger's body is deliberately never disabled**: a trigger is configured
|
||||
*before* it is switched on, so switching it off to change it, or to read what it is set to, is the
|
||||
ordinary way to work. It used to go insensitive with the mode, which left the settings unreachable
|
||||
exactly when a user wanted to change them; `trigger panel sensitive …=1` is the regression guard, and a
|
||||
`0` there means the configuration has been locked out again. The
|
||||
trap itself does not go away with the widget: a stack's hidden page measures 0x0 too and is still
|
||||
given the leftover width, so **ask about state, not about size** carries over unchanged. Every
|
||||
allocation read in the sidebar is a debug capture, and each reads 0 on the page that is *not*
|
||||
|
||||
@@ -1145,6 +1145,7 @@ library measures and draws the rect in tests of its own.
|
||||
[udpscope] pane edits: locked=document-edit-symbolic(ok) config=object-select-symbolic(ok)
|
||||
[udpscope] panes: trigger=locked signals=locked body_visible=0 summary='signal: square | condition: window, falling | level: 0.3 .. 0.6 | mode: single | noise band: 0.2 | pre-trigger: 20 % | hold-off: 1000 ms'
|
||||
[udpscope] panes: trigger=config signals=config body_visible=1 summary=''
|
||||
[udpscope] panes: the same line as the probe found it: 'mode: stream (trigger off)'
|
||||
```
|
||||
|
||||
**`pane edits:`** is the two `[edit]` buttons in each mode, by name and verdict, and it exists because of
|
||||
@@ -1160,6 +1161,14 @@ changes the configuration — and **config** is the full pane, which is what a *
|
||||
session file that loaded is what "we have been here before" means. Each heading's `[edit]` button flips
|
||||
its pane.
|
||||
|
||||
- **With trigger mode off the summary is one line**: `mode: stream (trigger off)`. The four lines below
|
||||
describe a trigger that is not running, so quoting them would describe nothing. The dump carries the line
|
||||
twice — once as the probe found it and once at the end — because only a run whose *session* has the
|
||||
trigger off shows the stream form, and a run whose session has it on shows the settings.
|
||||
- **`trigger panel sensitive …=1` is now a guard, not a state.** The trigger's body is never disabled —
|
||||
a trigger is configured before it is switched on — so this reads `1` always, and a `0` means the
|
||||
settings have been made unreachable again. The *cursors'* body is disabled with the cursors, and that
|
||||
is the pane whose readout has nothing to show.
|
||||
- **`summary`** is the locked trigger pane's whole content, as `key: value` pairs separated by ` |`. The
|
||||
pane draws it as a small definition list — `signal`, `condition`, `level`, `mode` on four lines, and
|
||||
then only the figures that are *not* at their defaults (`noise band`, `HF reject`, `pre-trigger`,
|
||||
|
||||
Reference in new issue
Block a user