feat: GUI accessibility - text zoom, high-contrast resize lines, per-mode transmission #224

Merged
perl_d merged 4 commits from feat/gui-accessibility into main 2026-09-14 13:23:33 +02:00
4 Commits
Author SHA1 Message Date
duan_jandClaude Fable 5 27fa6cb260 feat: full-name tooltips on the glyph count column headers
CI / lint (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test (3.12) (push) Skipped
CI / lint (pull_request) Successful in 57s
CI / test (3.12) (pull_request) Successful in 1m18s
CI / test (3.14) (pull_request) Successful in 1m18s
CI / test (3.13) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m28s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m37s
CI / test-with-coverage (pull_request) Successful in 1m48s
CI / coverage-analysis (pull_request) Successful in 4s
The sample list's Mount/Gridscan/Screening/Rotation count columns show
only a glyph in the header to save width; hovering now shows the full
name via ToolTipRole. Text headers stay tooltip-free.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-14 10:38:30 +02:00
duan_jandClaude Fable 5 6b34fd80bb refactor: transmission is a per-mode setting, placed in its section
CI / lint (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / lint (pull_request) Successful in 59s
CI / test (3.12) (pull_request) Successful in 1m15s
CI / test (3.14) (pull_request) Successful in 1m17s
CI / test (3.13) (pull_request) Successful in 1m21s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m22s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m37s
CI / test-with-coverage (pull_request) Successful in 1m51s
CI / coverage-analysis (pull_request) Successful in 4s
The shared "Rotation transmission" row sat in the top rows of BOTH the
Gridscan and Rotation tabs, where it read as one setting for everything
(and as nonsense in the Gridscan tab). Now each tab places its own row:
Gridscan keeps "Transmission" with the shared resolution/distance rows,
and the Rotation tab moves "Rotation transmission" below the Screening
block and its Run button, as the first row of the Rotation section -
next to the fields it actually applies to. Screening keeps its separate
"Screening transmission". No behavior change: same field, same
spreadsheet/user-value handling, only the label and the placement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-14 10:31:10 +02:00
duan_jandClaude Fable 5 29ae65a100 feat: show the mounted sample name on the camera view
A "Currently mounted: <sample_name>" HUD line in the top-left corner of
the sample camera, driven by the DAQ status (clears when nothing is
mounted). Painted like the other camera HUDs and sized through the text
zoom, which QSS cannot reach here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-14 10:29:04 +02:00
duan_jandClaude Fable 5 bd74ac47bc feat: text zoom shortcuts and high-contrast resize lines
CI / lint (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / lint (pull_request) Successful in 1m0s
CI / test (3.12) (pull_request) Successful in 1m27s
CI / test (3.14) (pull_request) Successful in 1m24s
CI / test (3.13) (pull_request) Successful in 1m36s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m34s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m35s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m39s
CI / test-with-coverage (pull_request) Successful in 1m53s
CI / coverage-analysis (pull_request) Successful in 4s
- Ctrl+plus / Ctrl+minus / Ctrl+0 (and View menu entries) scale the QSS
  FONT_* ladder and the application default font together; the scale is
  clamped to 0.8-1.6 and persisted in QSettings appearance/font_scale.
- Resize gutters keep a 5px hover/drag region but paint only a 2px line
  with a 1px shadow (hard-stop gradients per orientation).
- WCAG contrast fixes: separators were 1.0-1.2:1 against every theme
  background, now >=3.25:1 (dark theme gold @70%); scrollbar handle
  1.17:1 -> 3.38:1; unselected tab text on the sky gradient 2.07:1 ->
  4.71:1 via TAB_IDLE_TEXT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-13 22:21:46 +02:00