Repository navigation
Main window: fixes from the UI finish-gate review - #25
Merged
Merged
Conversation
A pre-release review of the main window (rendered offscreen in dark and
light, at default and minimum size) returned HOLD on six findings:
1. A long filename in "Settings for ..." widened the fixed 456 px
settings column and clipped the segmented controls. The scope label
now elides in the middle and asks for no width; full name in the
tooltip.
2. After a run, Convert still counted and queued every row, re-encoding
finished videos into "name (1).mp4" copies. It now counts and queues
only unfinished rows (failed ones are retried); with everything
done it is disabled with a reason.
3. Queue columns were fixed px widths ("11.2GB" showed as "11.2..."; at
960 px Status lost its %). Video now stretches and elides; Duration,
Size and Status are sized from the font and refit on font/style
changes.
4. Selected segments and tabs went bold (selection is colour-only),
Convert/Cancel/Open Folder were 32 px next to 28 px buttons, and
controls used a 6 px radius instead of the 4 px token. Fixed; the
bold-width reservation is gone with the bold.
5. The keyboard focus ring (a QSS outline) was drawn inside the button,
over the label, and the queue boxed a single cell. Buttons now show
focus as their own 2 px border, padding-compensated so nothing
moves; the queue draws one ring around the whole current row.
6. A failed row only said "Failed". The reason (ffmpeg's last real
error line, not just "ffmpeg exited 1") now shows in red on the
row's second line, and the finished outcome is a status headline
(icon + sentence, section-title weight).
Also isolates TestLeftPanelScrolling's default-size test from the real
config: it read whatever Expert state an earlier test had saved, so it
failed depending on batch order.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E1Jny9Kg3YZX8GMCEStTvL
This was referenced Oct 7, 2026
On a machine without a usable GPU (the CI runner) the Processing row is hidden, and the hidden CPU button reported Qt's placeholder 640x480 geometry, so the test failed there although the column was fine. The test now pins GPUs present, as the other layout tests do, and asserts each button it measures is visible. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E1Jny9Kg3YZX8GMCEStTvL
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.
A pre-release review of the main window (the
ui-finish-gate-revieweragent, rendering it offscreen in Dark and Light at default and minimum size) returned HOLD on six findings. This fixes all six.Settings for "…"widened the fixed 456 px column and silently clipped the segmented controls (Processing collapsed to one huge "Automatic"). The scope label (_ElidedLabel) now elides in the middle and asks for no width; the full name is in the tooltip.name (1).mp4copies. It now counts and queues only rows without_completed_output_path, so failed rows are retried; finished rows keep their result. With everything done it's disabled: "All videos converted — add more videos". The deferred start (Convert while analysis is running) uses the same check. The help already promised this behaviour.DropTreeWidget.fit_columns) and refit on font or style changes. Trade-off: Video can no longer be dragged wider.border: none). Controls use the 4 px radius token instead of 6 px.outlineinside the button, around the text. Buttons now show keyboard focus as their own 2 px border, with padding compensated so nothing moves; the queue draws one 2 px ring around the whole current row instead of a 1 px box around a cell. Clicks still show no ring.summarize_ffmpeg_failure). The row's second line shows it in red ("Failed: …"), and the finished outcome is a status headline: icon + sentence at section-title weight ("⚠ Completed with Issues").Help (
video-wont-convert,conversion-status) and the README are updated to match.Also fixed:
TestLeftPanelScrolling.test_no_scrolling_needed_at_default_size_with_expert_collapsedread the real config, so it failed whenever an earlier test had saved Expert as expanded. That showed up here because the new tests shifted the batch boundaries. It now uses_empty_qsettings(), like its sibling.Tests: 28 new tests (6 classes in
test_main.py, plusTestFailureReasonintest_worker.py). 24 of them failed before the fixes and pass after; the other 4 are guards.TestSegmentedButtonBoldWidthis replaced by a plain fits-its-text check. All 32 batches ofrun_tests_chunked.pypass (621 tests).Verified visually by re-rendering offscreen: long-name selection at 1186×720 and 960×640, the finished state with one failure, converting at minimum size, minimum size with 115% text, and zoomed Tab focus on Convert, a checked segment and a queue row. Not verified: the real desktop at 150% with the system accent and Breeze. In particular, with the default test accent the Convert focus ring (TEXT_ON_ACCENT) contrasts with the fill but not with the dark window behind it.
Not in this PR (the review's optional items): dropping Clear Queue's confirmation, the "Converting…" disabled primary slot, the "Automatic" button reading as a fifth segment, the repeated "Quality" label, the Expert box's collapsed padding, the "Preparing --" double hyphen, sentence case, menu mnemonics, the hard-coded 10pt body, and the two "open folder" buttons.
🤖 Generated with Claude Code
https://claude.ai/code/session_01E1Jny9Kg3YZX8GMCEStTvL