gui: ship the real icon set, wire toolbar/tray/window icon, rebase onto main

Adwaita-derived (GNOME Project, LGPL-3-or-CC-BY-SA), recoloured per light/dark
skin and laid out in IDM's toolbar positions per docs/03-gui-spec.md §1.
Licence and per-file provenance recorded in gui/resources/icons/LICENSE.

New IconTheme mirrors ThemeManager's colorSchemeChanged hook so a live
light/dark switch swaps every action's glyph, not just the QSS. Toolbar/menu
actions, the tray icon and the window icon all now use it instead of the
SP_ArrowDown placeholder. Install-path notes for PKG filed as R5 in
gui/docs/pkg-qa-requests-m1.md.

Also rebases lane/gui onto main (13 commits, no gui/ conflicts).

Verified: full build clean, all 13 gui ctest targets pass (including
gui_no_download_logic), unhappy-path DoD gate PASS against mockd
(--drop-connection).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
2026-09-15 17:50:51 +04:00
co-authored by Claude Sonnet 5
parent facd851824
commit 9487202ea8
32 changed files with 322 additions and 9 deletions
+32
View File
@@ -219,3 +219,35 @@ Worth making explicit anyway, since relying on undocumented target leakage is fr
No apt change needed either way — `qt6-base-dev` (already in `APT_GUI`) ships `QtDBus`'s
headers directly (verified live: `dpkg -L qt6-base-dev | grep -i dbus` lists the whole
`QtDBus/` include tree).
---
## R5 — real icon set has landed; stop shipping the placeholder, here's the install path
`gui/resources/icons/.gitkeep` is gone. There's a real, licensed icon set now (Adwaita,
GNOME Project, LGPL-3-or-CC-BY-SA — full text and per-file provenance in
`gui/resources/icons/LICENSE`), embedded into `velox-gui` via `qt_add_resources` in
`gui/CMakeLists.txt` (`:/icons/{light,dark}/<name>.svg` for toolbar/menu actions,
`:/icons/app/velox.svg` for the window and tray icon). Nothing needs installing
separately for the binary itself — the SVGs are baked into the Qt resource system at
build time, not read from disk at runtime.
What that means for whatever `.deb` postinst / desktop-entry work PKG is doing:
* **Stop bundling a placeholder icon file in the test `.deb`.** There's no longer a gap
to fill — `velox-gui`'s own binary already carries its icon.
* **App icon for the `.desktop` file / desktop menu entry**, if PKG is generating one:
the source SVG is `gui/resources/icons/app/velox.svg` (full colour, unmodified Adwaita
`folder-download` glyph, same in light and dark). If the packaging pipeline wants a
filesystem-installed icon (standard XDG icon-theme layout, e.g.
`/usr/share/icons/hicolor/scalable/apps/velox.svg`, referenced from the `.desktop`
file's `Icon=velox` key) rather than relying on the binary's embedded window icon for
the taskbar/launcher, that single file is the one to install — no rasterization needed,
it's already a clean scalable SVG. GUI has no packaging-stage code to add this itself
(CLAUDE.md §1: `packaging/` is PKG's lane), so filing the path here rather than reaching
across.
* Licence compliance for the `.deb`: `gui/resources/icons/LICENSE` should ship somewhere
discoverable from the package (e.g. copied into `debian/copyright` or
`/usr/share/doc/velox/copyright` alongside whatever other third-party attributions PKG
already tracks) — it documents the Adwaita provenance and dual LGPL-3/CC-BY-SA license
per file, which needs to be preserved wherever the binary that embeds these SVGs ships.