Full-width rail targets; drop the idle pill and the edited marker - #177
Merged
Merged
Conversation
…tself **The rail entries were as wide as their labels.** A QToolButton sizes itself to its text, so each row was a different width -- Metadata 111px, Mice 85px -- and most of the rail looked clickable while being inert. Reported as missing them, which is exactly what a target that stops with the word produces. They span the rail now. **"- edited" is gone from beside the experiment name.** A strip that appends it the moment you type in the name is telling you what you just did. But it was also the shell's *only* unsaved-work indicator -- the tests said so in a comment -- so removing the text without replacing the signal would have left none. setWindowModified takes it over: the dot in the close button on macOS, an asterisk elsewhere, and the platform convention rather than an invention of ours. It is set on the window, not the strip, so it also works in runner mode, where there is no strip to carry it. **The run-state pill is hidden while idle.** Idle is the state GLIDER is in almost all of the time, and an indicator that is always on screen stops being read -- which is the one failure this pill cannot afford, since its whole job is to be noticed when a run starts or a board drops out of one at 3am. Everything that is not idle still appears, unchanged. The dirty label and the pill are kept as widgets rather than deleted: both are still driven by callers that carry real information, and the pill needs to come back the instant the state stops being idle. Tests repointed rather than relaxed -- the claims they were making are still true, they just live somewhere else now. The toggle-placement test additionally had to start ignoring hidden widgets: a hidden one has no position, and its collapsed span would have failed that test for a reason unrelated to where the toggles are. Docs updated with them: the strip's contents table, the "what it carries" list and the pill's own section all described what was just removed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three fixes from using the app, all reported together.
Rail entries are the full width of the rail
A
QToolButtonsizes itself to its label, so every entry on the Experimentrail was a different width — Metadata 111px, Mice 85px, Zones 92px — and most
of the rail looked clickable while being inert. Reported as "they are
inconsistent and I find myself missing them", which is exactly what a target
that stops with the word produces.
— editedis gone from beside the experiment nameA strip that appends it the moment you type in the name is telling you what you
just did.
It was also the shell's only unsaved-work indicator — the tests said so in
a comment — so removing the text without replacing the signal would have left
none at all.
setWindowModifiedtakes it over: the dot in the close button onmacOS, an asterisk elsewhere, and the platform's own convention rather than an
invention of ours. Set on the window rather than the strip, so it also works
in runner mode, where there is no strip to carry it.
The run-state pill is hidden while idle
Idle is the state GLIDER is in almost all of the time, and an indicator that is
always on screen stops being read — which is the one failure this pill cannot
afford, since its whole job is to be noticed when a run starts or a board drops
out of one at 3am. Everything that is not idle appears exactly as before.
The pill and the dirty label are kept as widgets rather than deleted: both are
still driven by callers carrying real information, and the pill has to come
back the instant the state stops being idle.
Notes for review
they just live somewhere else —
isWindowModified()instead ofdirty_label().isVisible(). The toggle-placement test additionally had tostart ignoring hidden widgets: a hidden one has no position, so its collapsed
span would have failed that test for a reason unrelated to where the toggles
sit.
carries" list, and the pill's own section all described what was just
removed.
idle was my reading of "the Idle can go", chosen because the strip is
documented as the thing that must stay visible during an unattended run.
Testing
QT_QPA_PLATFORM=offscreen uv run --no-sync pytest -q -m "not slow"—5124 passed, 3 skipped. ruff clean. Checked on screen: rail targets uniform
and full width, no pill, no
— edited.