diff options
| author | Martin T. H. Sandsmark <[email protected]> | 2020-09-25 16:33:25 +0200 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2020-11-01 22:17:17 +0000 |
| commit | 891ebf5758cd3569974c87f3c25f0546fe2613be (patch) | |
| tree | 9ee801fb928cfccb0443143fff598e42e855e9c0 /src/kitemviews/kstandarditemlistwidget.cpp | |
| parent | adfca907309e89c8a3f294877923fb496b4938e0 (diff) | |
Fix warnings about scaling pixmaps
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index f2fc21332..5175d80fa 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -314,7 +314,7 @@ void KStandardItemListWidget::paint(QPainter* painter, const QStyleOptionGraphic } const KItemListStyleOption& itemListStyleOption = styleOption(); - if (isHovered()) { + if (isHovered() && !m_pixmap.isNull()) { if (hoverOpacity() < 1.0) { /* * Linear interpolation between m_pixmap and m_hoverPixmap. @@ -357,7 +357,7 @@ void KStandardItemListWidget::paint(QPainter* painter, const QStyleOptionGraphic } else { drawPixmap(painter, m_hoverPixmap); } - } else { + } else if (!m_pixmap.isNull()) { drawPixmap(painter, m_pixmap); } @@ -962,6 +962,11 @@ void KStandardItemListWidget::updatePixmapCache() KPixmapModifier::scale(m_pixmap, QSize(maxIconWidth, maxIconHeight) * qApp->devicePixelRatio()); } + if (m_pixmap.isNull()) { + m_hoverPixmap = QPixmap(); + return; + } + if (m_isCut) { KIconEffect* effect = KIconLoader::global()->iconEffect(); m_pixmap = effect->apply(m_pixmap, KIconLoader::Desktop, KIconLoader::DisabledState); @@ -974,6 +979,10 @@ void KStandardItemListWidget::updatePixmapCache() if (m_layout == IconsLayout && isSelected()) { const QColor color = palette().brush(QPalette::Normal, QPalette::Highlight).color(); QImage image = m_pixmap.toImage(); + if (image.isNull()) { + m_hoverPixmap = QPixmap(); + return; + } KIconEffect::colorize(image, color, 0.8f); m_pixmap = QPixmap::fromImage(image); } |
