Skip to content

fix(gui): make Doctor & Setup output selectable/copyable (#108)#135

Closed
prekabreki wants to merge 1 commit into
mainfrom
fix/108-setup-doctor-copyable
Closed

fix(gui): make Doctor & Setup output selectable/copyable (#108)#135
prekabreki wants to merge 1 commit into
mainfrom
fix/108-setup-doctor-copyable

Conversation

@prekabreki

Copy link
Copy Markdown
Owner

What

In the Pipeline tab's Setup screen / Doctor panel (src/deciwaves/gui/views/setup.py), the rendered output was shown in QLabels the user could not select or copy. A user who hit an error had no way to copy the text (tool paths, warnings, doctor rows, error/summary lines) to paste into an issue.

Change

  • Add a small module-level _selectable(label) helper that sets Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard and returns the label.
  • Apply it to every output-bearing label:
    • the Doctor row message/fix text label,
    • the Setup tool-path summary label (_paths_label),
    • the Setup warnings label (_warnings_label),
    • each per-tool status label (_tool_status[...]).

Layout, styling and severity colouring are all unchanged -- this only flips the text-interaction flags so the existing labels become selectable/copyable. Scope is strictly making output copyable; no progress/cancel/failure-surfacing (that's #129).

Tests

Added two offscreen widget tests in tests/gui/test_setup_view.py:

  • test_doctor_rows_are_selectable -- the doctor row that carries the message/fix text is selectable.
  • test_setup_output_widgets_are_selectable -- after a real setup run, the paths label, warnings label, and every per-tool status label are selectable.

ruff check src tests and pytest -q both green (1129 passed, 33 skipped) offscreen.

Closes #108

🤖 Generated with Claude Code

The Doctor/Setup output (doctor row message+fix lines, setup tool-path
summary, per-tool status, and Oodle/HZD warning lines) rendered in QLabels
the user could not select or copy. A user who hit an error had no way to
copy the text to paste into an issue.

Add a small `_selectable()` helper that sets
`Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard` on a label, and
apply it to every output-bearing label: the doctor row text, the setup
paths label, the warnings label, and each per-tool status label. Layout,
styling and severity colouring are unchanged -- this only flips the text
interaction flags.

Tests: doctor rows carry selectable text, and all setup output labels
(paths, warnings, per-tool status) are selectable after a real setup run.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@prekabreki

Copy link
Copy Markdown
Owner Author

Superseded. #108 (Doctor/Setup output selectable/copyable) was resolved by merged PR #140 (013290d) and closed 2026-07-20. This PR predates that merge and is redundant. No action needed.

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.

gui: Doctor & Setup output should be selectable / copyable

1 participant