32 QAppleIconEngine(
const QString &iconName);
34 QIconEngine *clone()
const override;
35 QString key()
const override;
36 QString iconName() override;
37 bool isNull() override;
39 QList<QSize> availableSizes(QIcon::Mode, QIcon::State) override;
40 QSize actualSize(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
41 QPixmap pixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state) override;
42 QPixmap scaledPixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) override;
43 void paint(QPainter *painter,
const QRect &rect, QIcon::Mode mode, QIcon::State state) override;
45 static QList<QSize> availableIconSizes(
double aspectRatio = 1.0);
48 const QString m_iconName;
49#if defined(Q_OS_MACOS)
50 const NSImage *m_image;
51#elif defined(QT_PLATFORM_UIKIT)
52 const UIImage *m_image;
55 constexpr CacheKey(QIcon::Mode mode, QIcon::State state, QSize size, qreal scale)
noexcept
56 : modeAndState((quint64(mode) << 32) | state), size(size), scale(scale)
63 friend constexpr bool operator==(
const CacheKey &lhs,
const CacheKey &rhs)
noexcept
65 return lhs.modeAndState == rhs.modeAndState
66 && lhs.size == rhs.size
67 && lhs.scale == rhs.scale;
69 friend constexpr size_t qHash(
const CacheKey &key, size_t seed)
noexcept
70 {
return qHashMulti(seed, key.modeAndState, key.size, key.scale); }
72 mutable QHash<CacheKey, QPixmap> m_cache;