810
810
QIcon::Mode mode = option->state & QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled;
811
811
QIcon::State state = option->state & QStyle::State_Open ? QIcon::On : QIcon::Off;
813
QSize finalSize(iconSize.toSize());
814
//for small sizes, use a standard size
815
if (finalSize.width() < KIconLoader::SizeSmallMedium) {
816
finalSize = QSize(KIconLoader::SizeSmall, KIconLoader::SizeSmall);
817
} else if (finalSize.width() < KIconLoader::SizeMedium) {
818
finalSize = QSize(KIconLoader::SizeSmallMedium, KIconLoader::SizeSmallMedium);
819
} else if (finalSize.width() < KIconLoader::SizeLarge) {
820
finalSize = QSize(KIconLoader::SizeMedium, KIconLoader::SizeMedium);
814
824
if (iconSvgElementChanged || iconSvgPixmap.size() != iconSize.toSize()) {
815
iconSvg->resize(iconSize);
825
//even the svg is returned at standard sizes because:
826
// * it may have a version optimized for that size
827
// * look aligned with other icons
828
iconSvg->resize(finalSize);
816
829
iconSvgPixmap = iconSvg->pixmap(iconSvgElement);
817
830
iconSvgElementChanged = false;
819
832
result = iconSvgPixmap;
821
const QSize size = icon.actualSize(iconSize.toSize(), mode, state);
822
result = icon.pixmap(size, mode, state);
834
QSize size(iconSize.toSize());
835
//the QIcon isn't filled with available sizes, return a near standard size for small pixmaps
836
if (!icon.availableSizes().isEmpty()) {
837
finalSize = icon.actualSize(iconSize.toSize(), mode, state);
840
result = icon.pixmap(finalSize, mode, state);
825
843
if (usePressedEffect) {