┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefan Brüns <[email protected]>2021-02-15 11:16:32 +0100
committerStefan Brüns <[email protected]>2021-02-15 17:24:01 +0100
commitb4676b71c695a546de623d6da592e9fc50b7265f (patch)
tree78ec1d01a2d2b68cb52bdf9d5c45011be1ffa53a /src
parentb351afb9e1aa845af98a38c46ebf5767c47c2d72 (diff)
[FileItemRolesUpdater] Fix calculation of requested indexes
In case the last and/or first page (a page being n=m_maximumVisibleItems items) overlapped the already inserted items, one item for each range would be inserted a second time, e.g. for the first page and last page: `beginExtendedVisibleRange == 0` => `endFirstPage := 0` => `0 <= 0` is inserted again. `count == 100; endExtendedVisibleRange == 99; m_maximumVisibleItems == 20` => `beginLastPage := 99` => `99 < 100` is inserted again.
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp
index 42788d2fe..88a732f8d 100644
--- a/src/kitemviews/kfileitemmodelrolesupdater.cpp
+++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp
@@ -1185,14 +1185,14 @@ QList<int> KFileItemModelRolesUpdater::indexesToResolve() const
}
// Add items on the last page.
- const int beginLastPage = qMax(qMin(endExtendedVisibleRange + 1, count - 1), count - m_maximumVisibleItems);
+ const int beginLastPage = qMax(endExtendedVisibleRange + 1, count - m_maximumVisibleItems);
for (int i = beginLastPage; i < count; ++i) {
result.append(i);
}
// Add items on the first page.
- const int endFirstPage = qMin(qMax(beginExtendedVisibleRange - 1, 0), m_maximumVisibleItems);
- for (int i = 0; i <= endFirstPage; ++i) {
+ const int endFirstPage = qMin(beginExtendedVisibleRange, m_maximumVisibleItems);
+ for (int i = 0; i < endFirstPage; ++i) {
result.append(i);
}
@@ -1204,7 +1204,7 @@ QList<int> KFileItemModelRolesUpdater::indexesToResolve() const
--remainingItems;
}
- for (int i = beginExtendedVisibleRange - 1; i > endFirstPage && remainingItems > 0; --i) {
+ for (int i = beginExtendedVisibleRange - 1; i >= endFirstPage && remainingItems > 0; --i) {
result.append(i);
--remainingItems;
}