30QPixmap QAbstractFileIconEngine::pixmap(
const QSize &size, QIcon::Mode mode,
33 return scaledPixmap(size, mode, state, 1.0);
36QPixmap QAbstractFileIconEngine::scaledPixmap(
const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
44 QString key = cacheKey();
46 return filePixmap(size * scale, mode, state);
48 key += u'_' + QString::number(size.width() * scale);
51 if (!QPixmapCache::find(key, &result)) {
52 result = filePixmap(size * scale, mode, state);
54 QPixmapCache::insert(key, result);
60QSize QAbstractFileIconEngine::actualSize(
const QSize &size, QIcon::Mode mode,
63 const QList<QSize> &sizes = availableSizes(mode, state);
64 const int numberSizes = sizes.size();
71 const int sizeArea = size.width() * size.height();
72 QSize actualSize = sizes.first();
73 int actualArea = actualSize.width() * actualSize.height();
74 for (
int i = 1; i < numberSizes; ++i) {
75 const QSize &s = sizes.at(i);
76 const int a = s.width() * s.height();
77 if ((sizeArea <= a && a < actualArea) || (actualArea < sizeArea && actualArea < a)) {
83 if (!actualSize.isNull() && (actualSize.width() > size.width() || actualSize.height() > size.height()))
84 actualSize.scale(size, Qt::KeepAspectRatio);