|
Wireshark 4.7.2
The Wireshark network protocol analyzer
|
A QIcon that renders an SVG silhouette recoloured to a ThemeManager token, tracking light/dark and theme changes automatically. More...
#include <themed_icon.h>
Public Member Functions | |
| ThemedIcon (const QString &svg_resource_path, ThemeManager::ThemeToken token, QSize size=QSize(14, 14)) | |
| ThemedIcon (const QString &svg_resource_path, ThemeManager::ThemeToken token, ThemeManager::ThemeToken active_token, ThemeManager::ThemeToken selected_token=ThemeManager::NoRole, QSize size=QSize(14, 14)) | |
| Stateful variant: distinct colours per interaction mode. | |
A QIcon that renders an SVG silhouette recoloured to a ThemeManager token, tracking light/dark and theme changes automatically.
Companion to StockIcon. StockIcon selects a pre-made, per-mode raster resource; ThemedIcon renders one SVG and tints it to a live theme colour, so a single asset follows the active theme without per-mode variants. The tint uses CompositionMode_SourceIn, which flattens the rendered shape to the resolved colour — the source SVG's own colours (even gradients) don't matter, only its alpha silhouette.
It is part of the theme system and deliberately speaks ThemeManager tokens only: there are no QColor or QPalette overloads. Use a palette token (e.g. ThemeManager::PaletteText) for monochrome glyphs that should follow the text colour, or an accent token (e.g. ThemeManager::AccentSuccess) for a functional colour.
Theme tracking needs no caller code: the backing engine resolves the token colour at paint time and keys its pixmap cache on that colour, so a theme or light/dark flip is a natural cache miss and re-renders on the next repaint.
|
explicit |
| svg_resource_path | Qt resource path of the SVG, e.g. ":/svg_icons/x-filter-clear.svg". |
| token | Theme colour token the glyph is tinted to. |
| size | Nominal render size used when a caller requests a null size. |
|
explicit |
Stateful variant: distinct colours per interaction mode.
token colours the resting glyph (QIcon::Normal); active_token the hovered glyph (QIcon::Active); selected_token the pressed/selected glyph (QIcon::Selected, falling back to active_token). A QToolButton requests these modes itself on hover/press, so state recolouring needs no QSS — which matters because QSS cannot recolour an SVG glyph's fill. Pass NoRole for a mode to keep the single-token behaviour (a slight emphasis of token).