Commit cc8f5b49 authored by Frank Reininghaus's avatar Frank Reininghaus
Browse files

Do not make items invisible when turning off previews

This commit fixes a problem in KItemListView::doLayout(): This function
assumed that firstVisibleIndex is a constant.
However, if the view is scrolled to the bottom with previews enabled,
and then previews are disabled (and the icon size is much smaller
without previews), this function changes the scroll offset, which also
changes the the first visible index. Using the unchanged variable causes
trouble later on (i.e., it makes items which are actually inside the
view area invisible).
lastVisibleIndex is not needed before the scroll offset change and is
const after that, so its calculation is moved a few lines down.
BUG: 291841
FIXED-IN: 4.8.1
REVIEW: 103731
parent 8f231bd0
......@@ -1292,8 +1292,7 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha
return;
}
const int firstVisibleIndex = m_layouter->firstVisibleIndex();
const int lastVisibleIndex = m_layouter->lastVisibleIndex();
int firstVisibleIndex = m_layouter->firstVisibleIndex();
if (firstVisibleIndex < 0) {
emitOffsetChanges();
return;
......@@ -1306,8 +1305,11 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha
const qreal maxOffsetToShowFullRange = maximumScrollOffset() - visibleOffsetRange;
if (scrollOffset() > maxOffsetToShowFullRange) {
m_layouter->setScrollOffset(qMax(qreal(0), maxOffsetToShowFullRange));
firstVisibleIndex = m_layouter->firstVisibleIndex();
}
const int lastVisibleIndex = m_layouter->lastVisibleIndex();
// Determine all items that are completely invisible and might be
// reused for items that just got (at least partly) visible.
// Items that do e.g. an animated moving of their position are not
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment