diff options
| author | Peter Penz <[email protected]> | 2011-12-10 23:02:04 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-12-10 23:03:38 +0100 |
| commit | bb6dda65002351dfb477e799b2c23cb98a80c6a0 (patch) | |
| tree | 3bd6fa1881d8e440fc6a32487250259b9fb8edfd /src/kitemviews/kfileitemlistwidget.cpp | |
| parent | 54713bab0b387bda14ee3733bc55f9755555e97f (diff) | |
Fix issue that icon overlay is missing for links
BUG: 288609
FIXED-IN: 4.8.0
Diffstat (limited to 'src/kitemviews/kfileitemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemlistwidget.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index 966827017..13832a80b 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -460,7 +460,8 @@ void KFileItemListWidget::updatePixmapCache() if (!updatePixmap && m_dirtyContent) { updatePixmap = m_dirtyContentRoles.isEmpty() || m_dirtyContentRoles.contains("iconPixmap") - || m_dirtyContentRoles.contains("iconName"); + || m_dirtyContentRoles.contains("iconName") + || m_dirtyContentRoles.contains("iconOverlays"); } if (updatePixmap) { @@ -507,6 +508,22 @@ void KFileItemListWidget::updatePixmapCache() m_originalPixmapSize = m_pixmap.size(); } + const QStringList overlays = values["iconOverlays"].toStringList(); + + // Strangely KFileItem::overlays() returns empty string-values, so + // we need to check first whether an overlay must be drawn at all. + // It is more efficient to do it here, as KIconLoader::drawOverlays() + // assumes that an overlay will be drawn and has some additional + // setup time. + foreach (const QString& overlay, overlays) { + if (!overlay.isEmpty()) { + // There is at least one overlay, draw all overlays above m_pixmap + // and cancel the check + KIconLoader::global()->drawOverlays(overlays, m_pixmap, KIconLoader::Desktop); + break; + } + } + if (m_isCut) { applyCutEffect(m_pixmap); } |
