Skip to content

Camera: say why buttons are disabled, disable them during a scan; Edge glow threshold and Smoothing hints (#173) - #178

Merged
Skeyelab merged 2 commits into
mainfrom
issue-173-disabled-reasons
Oct 23, 2026
Merged

Skeyelab merged 2 commits into
mainfrom
issue-173-disabled-reasons

Conversation

@Skeyelab

@Skeyelab Skeyelab commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Closes #173

What changes

  • Camera section: Calibrate / Check exposure and Check framing say why they're disabled, beside the buttons and in their tooltip (same style as Scan's reason): "The engine isn't running...", "Open the output window first", "Choose a camera first". Check framing's feature description comes back as its tooltip once it can run.
  • During a scan: Show preview, Calibrate / Check exposure, Check framing and Skip an area are disabled with "The scan is using the camera" (beside the top buttons and beside Skip an area). Skip nothing stays enabled; it doesn't need the camera.
  • Edge glow: Sensitivity is renamed Edge threshold, hint "Higher: only strong edges". Same param key, range and direction, so saved shows render the same (engine/effect_settings.json unchanged).
  • Effect setting hints: number settings can carry hint (shown as the control's tooltip) and steps (named readout). Smoothing reads Off / Low / High with hint "Ignores speckle in the scan. Off: every edge, High: only clean lines"; still saved as 0, 1, 2.
  • README effects table updated.

Tests

  • cameraPanel.browser.test.ts: reasons for no output window, no camera, engine down; everything that needs the camera disabled during a scan and re-enabled after. Replaces the old test that expected Calibrate to stay enabled mid-scan.
  • controls.test.ts: Edge threshold label/hint/range, Smoothing hint and Off/Low/High readout.
  • make test: engine 289 passed; frontend 383 passed, 5 WebGL browser tests timed out under load (syncGroups, motion, text, edgeglowLook) and pass when rerun alone (14/14). Spelling check OK.

After review

  • The camera panel now updates from renderScanButton(), so it follows scan_started / scan_result / scan_failed / scan_canceled right away, not only the next status. No test covers this: no test mounts main.ts.
  • A status update in the middle of Calibrate or Check framing no longer re-enables the busy button (test added).
  • Setting hints are also set as aria-description on the slider.
  • Full frontend suite after these changes: 389 passed, 1 skipped.

…e glow threshold and Smoothing hints (#173)

Calibrate / Check exposure and Check framing show their reason beside them and in their
tooltip, as Scan does: the engine is down, open the output window, or choose a camera.
While a scan runs, Show preview, Calibrate, Check framing and Skip an area are disabled
with "The scan is using the camera".

Edge glow's Sensitivity is now Edge threshold ("Higher: only strong edges"); same key,
range and direction, so saved shows look the same. Number settings can carry a hint
(the control's tooltip) and step names: Smoothing reads Off / Low / High, still saved as 0..2.

Assisted-by: Claude Code:claude-opus-5-5
…abled (#173)

The camera panel was updated only on status, which the engine doesn't send on scan start or
end: its buttons stayed enabled into a scan and disabled after it. renderScanButton() now
updates it, on status and on every scan message. A status arriving mid-calibrate no longer
re-enables the busy button. Effect setting hints also reach screen readers (aria-description).

Assisted-by: Claude Code:claude-opus-5-5
@Skeyelab
Skeyelab force-pushed the issue-173-disabled-reasons branch from 02905ff to 320cc52 Compare October 23, 2026 19:03
@Skeyelab
Skeyelab merged commit 6aa5895 into main Oct 23, 2026
4 checks passed
@Skeyelab
Skeyelab deleted the issue-173-disabled-reasons branch October 23, 2026 19:12
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.

Editor: say why camera buttons are disabled, disable them during a scan, fix Edge glow Sensitivity and Smoothing

1 participant