┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kitemlistgroupheader.cpp2
-rw-r--r--src/kitemviews/kitemlistview.cpp12
-rw-r--r--src/kitemviews/kitemlistviewlayouter.cpp1
3 files changed, 10 insertions, 5 deletions
diff --git a/src/kitemviews/kitemlistgroupheader.cpp b/src/kitemviews/kitemlistgroupheader.cpp
index 7413a7d25..0cc04dc25 100644
--- a/src/kitemviews/kitemlistgroupheader.cpp
+++ b/src/kitemviews/kitemlistgroupheader.cpp
@@ -164,7 +164,7 @@ void KItemListGroupHeader::updateCache()
delete m_leftBorderCache;
delete m_rightBorderCache;
- const int length = size().height() - 1;
+ const int length = qMax(int(size().height() - 1), 1);
m_leftBorderCache = new QPixmap(length, length);
m_leftBorderCache->fill(Qt::transparent);
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 2c88160fe..6b199c1bb 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -1203,6 +1203,10 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha
if (invisible && !m_animation->isStarted(widget)) {
widget->setVisible(false);
reusableItems.append(index);
+
+ if (m_grouped) {
+ recycleGroupHeaderForWidget(widget);
+ }
}
}
@@ -1224,6 +1228,10 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha
const int oldIndex = reusableItems.takeLast();
widget = m_visibleItems.value(oldIndex);
setWidgetIndex(widget, i);
+
+ if (m_grouped) {
+ updateGroupHeaderForWidget(widget);
+ }
} else {
// No reusable KItemListWidget instance is available, create a new one
widget = createWidget(i);
@@ -1367,10 +1375,6 @@ void KItemListView::setWidgetIndex(KItemListWidget* widget, int index)
updateWidgetProperties(widget, index);
m_visibleItems.insert(index, widget);
- if (m_grouped) {
- updateGroupHeaderForWidget(widget);
- }
-
initializeItemListWidget(widget);
}
diff --git a/src/kitemviews/kitemlistviewlayouter.cpp b/src/kitemviews/kitemlistviewlayouter.cpp
index cb0e9cf55..728a67aa5 100644
--- a/src/kitemviews/kitemlistviewlayouter.cpp
+++ b/src/kitemviews/kitemlistviewlayouter.cpp
@@ -260,6 +260,7 @@ int KItemListViewLayouter::itemsPerOffset() const
bool KItemListViewLayouter::isFirstGroupItem(int itemIndex) const
{
+ const_cast<KItemListViewLayouter*>(this)->doLayout();
return m_groupItemIndexes.contains(itemIndex);
}