Settings pages (General, Playback, Playlist, Subtitles, Translation) use Kirigami.FormLayout with Kirigami spacing units instead of hand-placed grids and pixel values.
Glossary dialog: fixes the empty term list, adds save-error and incomplete-term messages, and keeps the dialog scrollable when the window is short.
Menus: grouped with separators, icons added, checkable Show Subtitles and Deinterlace items, exclusive radio groups for audio and subtitle tracks, and a width cap so long labels do not cover parent menus.
Hamburger menu lists a fixed set of items, disables unavailable ones, and no longer includes Quit.
Footer and header: keyboard focus reaches playback buttons, the slider, and the playlist toggle; volume shows a percentage label; header buttons show menu arrows.
Open URL is a titled dialog that reports an invalid URL and disables Open.
mpv: sub-visibility and deinterlace are observed as properties (MpvItem::subtitleVisible, MpvItem::deinterlace) instead of being polled by a timer.
Shortcut changes: Restart Playback moves from F5 to Ctrl+Shift+R, and About no longer uses F1. HIG does not allow single-F-key shortcuts.
Testing
Build passes.
All 5 autotests pass with LC_ALL=en_US.UTF-8 (ctest --test-dir build). The glossary tests cover a failed save and an incomplete entry.
Ran the real app under the Union style with the DarwinBreezeDark theme and checked screenshots of the video, Subtitles, Audio Track, and File menus; the hamburger menu; the empty state in light and dark themes; and the Open URL dialog.
Verified track radio behaviour: re-selecting the active audio track keeps its checkmark.
Verified the glossary list renders terms after the fix.
Not run: screen reader testing (Orca).
Not run: keyboard-only testing on Wayland.
Known limitation: at a 400×200 window size the glossary scrolls and buttons no longer overlap, but the content is barely visible. A minimum window height would be needed for a usable layout.
## Summary
- Settings pages (General, Playback, Playlist, Subtitles, Translation) use `Kirigami.FormLayout` with Kirigami spacing units instead of hand-placed grids and pixel values.
- Glossary dialog: fixes the empty term list, adds save-error and incomplete-term messages, and keeps the dialog scrollable when the window is short.
- Menus: grouped with separators, icons added, checkable Show Subtitles and Deinterlace items, exclusive radio groups for audio and subtitle tracks, and a width cap so long labels do not cover parent menus.
- Hamburger menu lists a fixed set of items, disables unavailable ones, and no longer includes Quit.
- Footer and header: keyboard focus reaches playback buttons, the slider, and the playlist toggle; volume shows a percentage label; header buttons show menu arrows.
- Open URL is a titled dialog that reports an invalid URL and disables Open.
- mpv: `sub-visibility` and `deinterlace` are observed as properties (`MpvItem::subtitleVisible`, `MpvItem::deinterlace`) instead of being polled by a timer.
- Shortcut changes: Restart Playback moves from `F5` to `Ctrl+Shift+R`, and About no longer uses `F1`. HIG does not allow single-F-key shortcuts.
## Testing
- Build passes.
- All 5 autotests pass with `LC_ALL=en_US.UTF-8` (`ctest --test-dir build`). The glossary tests cover a failed save and an incomplete entry.
- Ran the real app under the Union style with the DarwinBreezeDark theme and checked screenshots of the video, Subtitles, Audio Track, and File menus; the hamburger menu; the empty state in light and dark themes; and the Open URL dialog.
- Verified track radio behaviour: re-selecting the active audio track keeps its checkmark.
- Verified the glossary list renders terms after the fix.
- Not run: screen reader testing (Orca).
- Not run: keyboard-only testing on Wayland.
- Known limitation: at a 400×200 window size the glossary scrolls and buttons no longer overlap, but the content is barely visible. A minimum window height would be needed for a usable layout.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Kirigami.FormLayoutwith Kirigami spacing units instead of hand-placed grids and pixel values.sub-visibilityanddeinterlaceare observed as properties (MpvItem::subtitleVisible,MpvItem::deinterlace) instead of being polled by a timer.F5toCtrl+Shift+R, and About no longer usesF1. HIG does not allow single-F-key shortcuts.Testing
LC_ALL=en_US.UTF-8(ctest --test-dir build). The glossary tests cover a failed save and an incomplete entry.