┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-03-12 19:26:36 +0100
committerFrank Reininghaus <[email protected]>2013-03-12 19:26:36 +0100
commita97fe0c7ffa56ccba8899b773e9e67d94799f9ae (patch)
tree61b7ca79b8da3eb1423ff8b5c39fc7dcaefbb92e /src/kitemviews/kfileitemmodel.cpp
parentf71e0881d2c0a52c5fa020e3fd2b44ca6ab7b2d4 (diff)
Fix recent regressions when "Sort by Type" is used
This commit ensures that the mime types and icons are determined synchronously for 200 ms when "Sort by Type" is enabled. REVIEW: 109344
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 61703e760..40cd75094 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -984,13 +984,6 @@ void KFileItemModel::insertItems(QList<ItemData*>& items)
return;
}
- if (m_sortRole == TypeRole) {
- // Try to resolve the MIME-types synchronously to prevent a reordering of
- // the items when sorting by type (per default MIME-types are resolved
- // asynchronously by KFileItemModelRolesUpdater).
- determineMimeTypes(items, 200);
- }
-
#ifdef KFILEITEMMODEL_DEBUG
QElapsedTimer timer;
timer.start();
@@ -1160,6 +1153,13 @@ void KFileItemModel::removeItems(const KFileItemList& items, RemoveItemsBehavior
QList<KFileItemModel::ItemData*> KFileItemModel::createItemDataList(const KUrl& parentUrl, const KFileItemList& items) const
{
+ if (m_sortRole == TypeRole) {
+ // Try to resolve the MIME-types synchronously to prevent a reordering of
+ // the items when sorting by type (per default MIME-types are resolved
+ // asynchronously by KFileItemModelRolesUpdater).
+ determineMimeTypes(items, 200);
+ }
+
const int parentIndex = m_items.value(parentUrl, -1);
ItemData* parentItem = parentIndex < 0 ? 0 : m_itemData.at(parentIndex);
@@ -1956,12 +1956,12 @@ const KFileItemModel::RoleInfoMap* KFileItemModel::rolesInfoMap(int& count)
return rolesInfoMap;
}
-void KFileItemModel::determineMimeTypes(const QList<ItemData*>& items, int timeout)
+void KFileItemModel::determineMimeTypes(const KFileItemList& items, int timeout)
{
QElapsedTimer timer;
timer.start();
- foreach (const ItemData* itemData, items) { // krazy:exclude=foreach
- itemData->item.determineMimeType();
+ foreach (const KFileItem& item, items) { // krazy:exclude=foreach
+ item.determineMimeType();
if (timer.elapsed() > timeout) {
// Don't block the user interface, let the remaining items
// be resolved asynchronously.