34 QAppleIconEngine(
const QString &iconName);
37 static QIcon fromTheme(
const QString &iconName);
39 QIconEngine *clone()
const override;
40 QString key()
const override;
41 QString iconName() override;
42 bool isNull() override;
44 QList<QSize> availableSizes(QIcon::Mode, QIcon::State) override;
45 QSize actualSize(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
46 QPixmap pixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
47 QPixmap scaledPixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
48 void paint(QPainter *painter,
const QRect &rect, QIcon::Mode mode, QIcon::State state) override;
50 static QList<QSize> availableIconSizes(
double aspectRatio = 1.0);
52 void virtual_hook(
int hookIdentifier,
void *data) override;
55 const QString m_iconName;
56#if defined(Q_OS_MACOS)
57 const NSImage *m_image;
58#elif defined(QT_PLATFORM_UIKIT)
59 const UIImage *m_image;
62 constexpr CacheKey(QIcon::Mode mode, QIcon::State state,
const QPalette &palette, QSize size, qreal scale)
noexcept
63 : modeAndState((quint64(mode) << 32) | state)
64 , paletteCacheKey(palette.cacheKey())
70 quint64 paletteCacheKey;
74 friend constexpr bool operator==(
const CacheKey &lhs,
const CacheKey &rhs)
noexcept
76 return lhs.modeAndState == rhs.modeAndState
77 && lhs.paletteCacheKey == rhs.paletteCacheKey
78 && lhs.size == rhs.size
79 && lhs.scale == rhs.scale;
81 friend constexpr size_t qHash(
const CacheKey &key, size_t seed)
noexcept
82 {
return qHashMulti(seed, key.modeAndState, key.size, key.scale); }
84 mutable QHash<CacheKey, QPixmap> m_cache;