┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodelrolesupdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kfileitemmodelrolesupdater.cpp')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index 9fca8a1f6..39d01e232 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -79,6 +79,7 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
m_iconSize(),
m_firstVisibleIndex(0),
m_lastVisibleIndex(-1),
+ m_maximumVisibleItems(100),
m_roles(),
m_enabledPlugins(),
m_pendingVisibleItems(),
@@ -178,6 +179,11 @@ void KFileItemModelRolesUpdater::setVisibleIndexRange(int index, int count)
}
}
+void KFileItemModelRolesUpdater::setMaximumVisibleItems(int count)
+{
+ m_maximumVisibleItems = count;
+}
+
void KFileItemModelRolesUpdater::setPreviewsShown(bool show)
{
if (show == m_previewShown) {
@@ -670,7 +676,16 @@ void KFileItemModelRolesUpdater::startUpdating(const KItemRangeList& itemRanges)
const int lastIndex = range.index + range.count - 1;
for (int i = range.index; i <= lastIndex; ++i) {
const KFileItem item = m_model->fileItem(i);
- if (!hasValidIndexRange || (i >= m_firstVisibleIndex && i <= m_lastVisibleIndex)) {
+ bool visible;
+ if (hasValidIndexRange) {
+ visible = (i >= m_firstVisibleIndex && i <= m_lastVisibleIndex);
+ } else {
+ // If the view has not informed us about the visible range yet,
+ // just assume that the first items are visible.
+ visible = (i < m_maximumVisibleItems);
+ }
+
+ if (visible) {
m_pendingVisibleItems.insert(item);
} else {
m_pendingInvisibleItems.insert(item);