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
+13
View File
@@ -37,6 +37,7 @@ add_library(velox-gui-lib STATIC
src/tray/TrayIcon.cpp
src/widgets/DropTargetWidget.cpp
src/util/ThemeManager.cpp
src/util/IconTheme.cpp
src/util/UiThreadWatchdog.cpp
src/mainwindow/CategoryPanel.cpp
src/mainwindow/MainWindow.cpp
@@ -50,6 +51,18 @@ qt_add_resources(velox-gui-lib "theme"
FILES resources/qss/idm-like.qss resources/qss/dark.qss
)
# gui/resources/icons/LICENSE: Adwaita-derived (GNOME Project), LGPL-3 or CC-BY-SA-3/4.
# light/dark are the same glyphs recoloured for each toolbar skin (IconTheme picks
# between them the same way ThemeManager picks QSS); app/ is the fixed full-colour
# window/tray glyph.
file(GLOB VELOX_GUI_ICONS_LIGHT resources/icons/light/*.svg)
file(GLOB VELOX_GUI_ICONS_DARK resources/icons/dark/*.svg)
qt_add_resources(velox-gui-lib "icons"
PREFIX "/icons"
BASE "resources/icons"
FILES ${VELOX_GUI_ICONS_LIGHT} ${VELOX_GUI_ICONS_DARK} resources/icons/app/velox.svg
)
target_include_directories(velox-gui-lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_compile_features(velox-gui-lib PUBLIC cxx_std_23)
target_compile_options(velox-gui-lib PRIVATE -Wall -Wextra -Wpedantic -Werror)