~ubuntu-branches/ubuntu/utopic/kde4libs/utopic

« back to all changes in this revision

Viewing changes to plasma/widgets/iconwidget.cpp

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2012-11-06 22:32:05 UTC
  • mfrom: (1.14.23)
  • Revision ID: package-import@ubuntu.com-20121106223205-gagst9s46g041mmo
Tags: 4:4.9.3-0ubuntu1
* New upstream release (LP: #1074747)
  - drop fix_samba.diff, applied upstream
  - add new symbols to libkjsapi4.symbols and libkio5.symbols
  - refresh python3-support-bytecode.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
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;
812
812
 
 
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);
 
821
    }
 
822
 
813
823
    if (iconSvg) {
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;
818
831
        }
819
832
        result = iconSvgPixmap;
820
833
    } else {
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);
 
838
        }
 
839
 
 
840
        result = icon.pixmap(finalSize, mode, state);
823
841
    }
824
842
 
825
843
    if (usePressedEffect) {