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