]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Merge remote-tracking branch 'origin/KDE/4.9'
authorChristoph Feck <christoph@maxiom.de>
Thu, 25 Oct 2012 23:58:50 +0000 (01:58 +0200)
committerChristoph Feck <christoph@maxiom.de>
Thu, 25 Oct 2012 23:58:50 +0000 (01:58 +0200)
1  2 
src/kitemviews/kstandarditemlistwidget.cpp

index 4d65eb7d68d8bf744fff4acc1604d85bbc691824,bdc2859c0c1361cb97ccfa1496c7809b6f32f1e1..c49031a41322c357568e8746687d0ab5c47a5f73
@@@ -42,7 -42,6 +42,7 @@@
  #include <QStyleOption>
  #include <QTextLayout>
  #include <QTextLine>
 +#include <QPixmapCache>
  
  // #define KSTANDARDITEMLISTWIDGET_DEBUG
  
@@@ -1223,6 -1222,7 +1223,7 @@@ void KStandardItemListWidget::drawSibli
      QRect siblingRect(x, 0, siblingSize, siblingSize);
  
      QStyleOption option;
+     option.palette.setColor(QPalette::Text, option.palette.color(normalTextColorRole()));
      bool isItemSibling = true;
  
      const QBitArray siblings = siblingsInformation();
@@@ -1280,37 -1280,30 +1281,37 @@@ void KStandardItemListWidget::closeRole
  
  QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, int size)
  {
 -    const KIcon icon(name);
 -
 -    int requestedSize;
 -    if (size <= KIconLoader::SizeSmall) {
 -        requestedSize = KIconLoader::SizeSmall;
 -    } else if (size <= KIconLoader::SizeSmallMedium) {
 -        requestedSize = KIconLoader::SizeSmallMedium;
 -    } else if (size <= KIconLoader::SizeMedium) {
 -        requestedSize = KIconLoader::SizeMedium;
 -    } else if (size <= KIconLoader::SizeLarge) {
 -        requestedSize = KIconLoader::SizeLarge;
 -    } else if (size <= KIconLoader::SizeHuge) {
 -        requestedSize = KIconLoader::SizeHuge;
 -    } else if (size <= KIconLoader::SizeEnormous) {
 -        requestedSize = KIconLoader::SizeEnormous;
 -    } else if (size <= KIconLoader::SizeEnormous * 2) {
 -        requestedSize = KIconLoader::SizeEnormous * 2;
 -    } else {
 -        requestedSize = size;
 -    }
 +    const QString key = "KStandardItemListWidget:" % name  % ":" % QString::number(size);
 +    QPixmap pixmap;
 +
 +    if (!QPixmapCache::find(key, pixmap)) {
 +        const KIcon icon(name);
 +
 +        int requestedSize;
 +        if (size <= KIconLoader::SizeSmall) {
 +            requestedSize = KIconLoader::SizeSmall;
 +        } else if (size <= KIconLoader::SizeSmallMedium) {
 +            requestedSize = KIconLoader::SizeSmallMedium;
 +        } else if (size <= KIconLoader::SizeMedium) {
 +            requestedSize = KIconLoader::SizeMedium;
 +        } else if (size <= KIconLoader::SizeLarge) {
 +            requestedSize = KIconLoader::SizeLarge;
 +        } else if (size <= KIconLoader::SizeHuge) {
 +            requestedSize = KIconLoader::SizeHuge;
 +        } else if (size <= KIconLoader::SizeEnormous) {
 +            requestedSize = KIconLoader::SizeEnormous;
 +        } else if (size <= KIconLoader::SizeEnormous * 2) {
 +            requestedSize = KIconLoader::SizeEnormous * 2;
 +        } else {
 +            requestedSize = size;
 +        }
 +
 +        pixmap = icon.pixmap(requestedSize, requestedSize);
 +        if (requestedSize != size) {
 +            KPixmapModifier::scale(pixmap, QSize(size, size));
 +        }
  
 -    QPixmap pixmap = icon.pixmap(requestedSize, requestedSize);
 -    if (requestedSize != size) {
 -        KPixmapModifier::scale(pixmap, QSize(size, size));
 +        QPixmapCache::insert(key, pixmap);
      }
  
      return pixmap;