Audit main UI, menus, settings, and glossary against KDE HIG #4

Merged
vokhactri merged 4 commits from docs/kde-hig-ui-audit into main 2026-11-07 20:08:28 +07:00
vokhactri commented 2026-11-07 18:44:56 +07:00 (Migrated from github.com)

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.
## 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.
Sign in to join this conversation.