Cockatrice/cockatrice/resources
BruebachL 627c7a83aa
[Icons] Migrate UI glyphs to palette-token SVGs (#7595)
* [Icons] Migrate UI glyphs to palette-token SVGs

Runtime inversion is not a theming system: it rotates hue, breaks duotone art
and mishandles alpha, and a QPixmap snapshot cannot follow a palette change.
Redraw the top-level UI glyph set on a 24x24 grid with `currentColor` as the
paint token, drop Inkscape/Sodipodi cruft, and delete the icons whose metaphor
was duplicated (cogwheel/gear -> settings, scale_balanced -> scales,
update.png -> reload).

Load the glyphs through `loadThemedIcon` so the engine resolves the token from
the palette on every request, and let `themePixmap` use the same resolution for
one-shot pixmaps. `loadColorAdjustedPixmap` is gone; every caller now keeps a
QIcon, which `SettingsButtonWidget::setButtonIcon` accepts instead of a QPixmap.

Content art (mana, counters, countries) keeps its authored colors.

Add a render test covering aspect ratio, palette flips, icon modes and
high-DPI pixmaps.

* [Tests] Keep the icon render test QApplication alive until exit

Creating it as a function-local static tears it down before Qt's library statics
at exit, and libQt6Network then runs QObject destructors against freed memory —
a SEGV the sanitizer leg reports after the tests have already passed. Leak the
application instead, the usual pattern for a test binary.

* [Icons] Render lock and dropdown glyphs through the icon engine

Both generators rendered the sentinel SVG to a fixed height x height pixmap
at DPR 1. The pre-migration path rendered larger and let QIcon scale it, so
on a 2x display the games-list lock (13px) and the banner dropdown arrow
(24px) came back crisp; the new path hands the widget a DPR-1 bitmap that
gets upscaled and blurred.

- The games list asks the themed engine for `icons/lock` directly, so the
  item view paints it at the device pixel ratio and the lock also follows
  HighlightedText on a selected row.
- The dropdown goes through `loadThemedIcon(...).pixmap(size, dpr)`, which
  keeps the glyph's aspect ratio and renders at the requested ratio.
- LockPixmapGenerator has no consumer left, so it and its cache are gone.

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-04 18:39:41 +01:00
..
backgrounds [Themes] Encode home backgrounds as JPEG to slim the repo (#7346) 2026-09-24 18:40:04 +02:00
config [Tests] Vendor QtTesting behind an opt-in WITH_GUI_TEST flag (#7693) 2026-11-04 06:23:43 +01:00
counters Added colored storm counter 2015-04-19 18:14:29 +02:00
countries Fix cn and ss flags losing stars and clamp svg render sizes (#7168) 2026-08-23 20:13:14 +02:00
help Allow to filter sets by release date (#7239) 2026-09-05 11:58:37 -07:00
icons [Icons] Migrate UI glyphs to palette-token SVGs (#7595) 2026-11-04 18:39:41 +01:00
phases Reorganized images in subfolders 2015-06-15 14:37:19 +02:00
replay Reorganized images in subfolders 2015-06-15 14:37:19 +02:00
tips Add tip of the day for Expand Card View Window (#5666) 2025-02-28 11:29:09 -05:00
usericons [Client] Create custom pawn for dev role (#7295) 2026-09-18 10:58:10 -07:00
appicon.icns Update macOS Monterey app icon (#4805) 2023-08-06 17:46:03 -04:00
appicon.ico svg+png updates 2015-04-28 16:06:36 +02:00
cardback.svg Remove unused layers from cardback.svg (#6154) 2025-09-15 22:20:12 +02:00
cockatrice-logo-white.svg [App] Add onboarding wizard (#7064) 2026-08-24 23:05:58 +02:00
cockatrice-original.svg svg+png updates 2015-04-28 16:06:36 +02:00
cockatrice.png svg+png updates 2015-04-28 16:06:36 +02:00
cockatrice.svg [App] Add onboarding wizard (#7064) 2026-08-24 23:05:58 +02:00
hand.svg svg+png updates 2015-04-28 16:06:36 +02:00
hr.jpg hr.jpg changed 2009-08-24 13:33:38 +02:00