mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 01:23:24 -08:00
* [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> |
||
|---|---|---|
| .. | ||
| mana | ||
| arrow_down.svg | ||
| arrow_history.svg | ||
| arrow_left.svg | ||
| arrow_redo.svg | ||
| arrow_right.svg | ||
| arrow_right_sideboard.svg | ||
| arrow_to_bottom.svg | ||
| arrow_to_top.svg | ||
| arrow_undo.svg | ||
| arrow_up.svg | ||
| circle_half_stroke.svg | ||
| clearsearch.svg | ||
| conceded.svg | ||
| decrement.svg | ||
| delete.svg | ||
| dragon.svg | ||
| dropdown_collapsed.svg | ||
| dropdown_expanded.svg | ||
| filter.svg | ||
| floppy_disk.svg | ||
| forgot_password.svg | ||
| increment.svg | ||
| info.svg | ||
| lock.svg | ||
| not_ready_start.svg | ||
| pen_to_square.svg | ||
| pencil.svg | ||
| pin.svg | ||
| player.svg | ||
| ready_start.svg | ||
| reload.svg | ||
| remove_row.svg | ||
| rename.svg | ||
| scales.svg | ||
| scroll.svg | ||
| search.svg | ||
| settings.svg | ||
| share.svg | ||
| sort_arrow_down.svg | ||
| spectator.svg | ||
| swap.svg | ||
| sync.svg | ||
| tab_changed.svg | ||
| view.svg | ||