Skip to content

Input help marker: an ⓘ after the label of each described input (Tools #147) - #45

Merged
IvanHCenalmor merged 2 commits into
mainfrom
input-help-marker
Nov 6, 2026
Merged

IvanHCenalmor merged 2 commits into
mainfrom
input-help-marker

Conversation

@IvanHCenalmor

Copy link
Copy Markdown
Contributor

Part of CellMigrationLab/LabConstrictor-Tools#147: this is the QuPath step (Tools spec: Tools #151; napari: CellMigrationLab/LabConstrictor-napari#81, merged; Fiji follows).

What changes for the person using the form

  • An input with a description has an ⓘ after its label (the label's text is unchanged; the ⓘ is the label's graphic, on its right).
    • Hover the ⓘ or the label: the description as a tooltip (the label already had it).
    • Click the ⓘ: it stays open until a click elsewhere or Escape.
    • Tab into the input: the description shows under it (JavaFX focusVisible, so a mouse click into the input shows nothing extra).
  • An input without a description (none, or only spaces) has no ⓘ.
  • Works for every input kind, check boxes included (in QuPath every input has its label in the left column), inputs in folded groups, advanced settings and ChoicesFrom dropdowns.
  • The ⓘ has the accessible text "Help: " and the description as accessible help.

Files

  • LcHelp.groovy (new part, listed in parts.txt): the marker, the kept-open popup, the keyboard-focus tooltip.
  • LabConstrictorTools.groovy: addRows calls LcHelp.mark for each row (replacing the old label-only tooltip); a helpMarkers map, cleared with the form.
  • tests/gui_test_help_body.groovy (new) + its apps in tests/run_gui_ci.sh: markers and hover text on Find bright spots, a click keeps it open, Tab through the form shows each input's help, programmatic (mouse-like) focus does not, folded group and ChoicesFrom (Show a shape), no marker on Delayed points (runs app, no descriptions), blank description = none.
  • README.md: one bullet.

Checked locally (Windows 11)

  • The joined script (parts.txt order) plus the new test body compiles with QuPath 0.7.0's own Groovy 5.0.4 (FileSystemCompiler, against QuPath's jars).
  • npm-groovy-lint (the cached 17.x; CI pins 18.0.0) with .groovylintrc.json, --failon info: 0 findings.
  • Not run locally: the GUI test bodies (Linux + Xvfb only); the new body runs for the first time in this PR's CI.

After this merges, the QuPath column of the Input help marker row in Tools docs/HOST_FEATURES.md can move from "planned" to done.

🤖 Generated with Claude Code

IvanHCenalmor and others added 2 commits November 6, 2026 15:19
…s #147)

The input's description is its help. Hovering the ⓘ (or the label) shows it,
a click on the ⓘ keeps it open until a click elsewhere or Escape, and moving
into the input with the keyboard (Tab) shows it under the input; a mouse
click into the input does not. Inputs without a description (none, or only
spaces) get no ⓘ. The code is a new part, LcHelp.groovy; the form calls it
for each row. New GUI test body gui_test_help_body.groovy (interactions and
runs apps).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tab into the Threshold spinner gave no help on CI: a Spinner hands its focus
to its text field and takes it back, which clears JavaFX's focusVisible. A key
filter on the window now notes each Tab, and focus gained within 0.5 s of it
counts as keyboard focus too. The test checks the help, not focusVisible.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant