33 QAppleIconEngine(
const QString &iconName);
36 static QIcon fromTheme(
const QString &iconName);
38 QIconEngine *clone()
const override;
39 QString key()
const override;
40 QString iconName() override;
41 bool isNull() override;
43 QList<QSize> availableSizes(QIcon::Mode, QIcon::State) override;
44 QSize actualSize(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
45 QPixmap pixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
46 QPixmap scaledPixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
47 void paint(QPainter *painter,
const QRect &rect, QIcon::Mode mode, QIcon::State state) override;
49 static QList<QSize> availableIconSizes(
double aspectRatio = 1.0);
51 void virtual_hook(
int hookIdentifier,
void *data) override;
54 const QString m_iconName;
55#if defined(Q_OS_MACOS)
56 const NSImage *m_image;
57#elif defined(QT_PLATFORM_UIKIT)
58 const UIImage *m_image;
61 constexpr CacheKey(QIcon::Mode mode, QIcon::State state, QSize size, qreal scale)
noexcept
62 : modeAndState((quint64(mode) << 32) | state), size(size), scale(scale)
69 friend constexpr bool operator==(
const CacheKey &lhs,
const CacheKey &rhs)
noexcept
71 return lhs.modeAndState == rhs.modeAndState
72 && lhs.size == rhs.size
73 && lhs.scale == rhs.scale;
75 friend constexpr size_t qHash(
const CacheKey &key, size_t seed)
noexcept
76 {
return qHashMulti(seed, key.modeAndState, key.size, key.scale); }
78 mutable QHash<CacheKey, QPixmap> m_cache;