┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-08-24 20:27:30 +0200
committerFrank Reininghaus <[email protected]>2013-08-24 20:27:30 +0200
commitebfcb5e19b345a0fbb2425f537232f45d3b3d62a (patch)
treed510367d23d6188e4d5cbaca81cff487462bcbdf /src/kitemviews/kfileitemmodel.cpp
parentedcc9d5cee738a403846e8cee46a0df3555b0dff (diff)
parent7ffa66f77789f754a4c35a5c4d0ecbfc0a0ae1e7 (diff)
Merge remote-tracking branch 'origin/KDE/4.11'
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index eb7b16461..37a30519a 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -972,7 +972,7 @@ void KFileItemModel::slotRefreshItems(const QList<QPair<KFileItem, KFileItem> >&
emit itemsChanged(itemRangeList, changedRoles);
if (changedRoles.contains(sortRole())) {
- resortAllItems();
+ m_resortAllItemsTimer->start();
}
}
@@ -1405,6 +1405,9 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem& item,
if (m_requestRole[TypeRole]) {
data.insert(sharedValue("type"), item.mimeComment());
}
+ } else if (m_requestRole[TypeRole] && isDir) {
+ static const QString folderMimeType = item.mimeComment();
+ data.insert(sharedValue("type"), folderMimeType);
}
return data;
@@ -2011,7 +2014,15 @@ void KFileItemModel::determineMimeTypes(const KFileItemList& items, int timeout)
QElapsedTimer timer;
timer.start();
foreach (const KFileItem& item, items) { // krazy:exclude=foreach
- item.determineMimeType();
+ // Only determine mime types for files here. For directories,
+ // KFileItem::determineMimeType() reads the .directory file inside to
+ // load the icon, but this is not necessary at all if we just need the
+ // type. Some special code for setting the correct mime type for
+ // directories is in retrieveData().
+ if (!item.isDir()) {
+ item.determineMimeType();
+ }
+
if (timer.elapsed() > timeout) {
// Don't block the user interface, let the remaining items
// be resolved asynchronously.