┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistwidget.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-12-10 23:02:04 +0100
committerPeter Penz <[email protected]>2011-12-10 23:03:38 +0100
commitbb6dda65002351dfb477e799b2c23cb98a80c6a0 (patch)
tree3bd6fa1881d8e440fc6a32487250259b9fb8edfd /src/kitemviews/kfileitemlistwidget.cpp
parent54713bab0b387bda14ee3733bc55f9755555e97f (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.cpp19
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);
}