diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 8e64ee4933..c1eae53bd6 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -35,7 +35,6 @@ #include #include - /** * Replaces the default viewport of KItemListContainer by a * non-scrollable viewport. The scrolling is done in an optimized diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index 71091033c9..dbeb571a40 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -342,7 +342,7 @@ QSizeF KItemListView::itemSize() const QSizeF KItemListView::itemSizeHint() const { - return m_sizeHintResolver->maxSizeHint(); + return m_sizeHintResolver->minSizeHint(); } const KItemListStyleOption& KItemListView::styleOption() const diff --git a/src/kitemviews/private/kitemlistsizehintresolver.cpp b/src/kitemviews/private/kitemlistsizehintresolver.cpp index 02f1865b34..5c121c6670 100644 --- a/src/kitemviews/private/kitemlistsizehintresolver.cpp +++ b/src/kitemviews/private/kitemlistsizehintresolver.cpp @@ -26,6 +26,7 @@ KItemListSizeHintResolver::KItemListSizeHintResolver(const KItemListView* itemLi m_logicalHeightHintCache(), m_logicalWidthHint(0.0), m_logicalHeightHint(0.0), + m_minHeightHint(0.0), m_needsResolving(false) { } @@ -40,6 +41,12 @@ QSizeF KItemListSizeHintResolver::maxSizeHint() return QSizeF(m_logicalWidthHint, m_logicalHeightHint); } +QSizeF KItemListSizeHintResolver::minSizeHint() +{ + updateCache(); + return QSizeF(m_logicalWidthHint, m_minHeightHint); +} + QSizeF KItemListSizeHintResolver::sizeHint(int index) { updateCache(); @@ -161,6 +168,7 @@ void KItemListSizeHintResolver::updateCache() m_logicalHeightHint = 0.0; } else { m_logicalHeightHint = *std::max_element(m_logicalHeightHintCache.begin(), m_logicalHeightHintCache.end()); + m_minHeightHint = *std::min_element(m_logicalHeightHintCache.begin(), m_logicalHeightHintCache.end()); } m_needsResolving = false; } diff --git a/src/kitemviews/private/kitemlistsizehintresolver.h b/src/kitemviews/private/kitemlistsizehintresolver.h index 841e9ca100..fa92b86822 100644 --- a/src/kitemviews/private/kitemlistsizehintresolver.h +++ b/src/kitemviews/private/kitemlistsizehintresolver.h @@ -37,6 +37,7 @@ public: KItemListSizeHintResolver(const KItemListView* itemListView); virtual ~KItemListSizeHintResolver(); QSizeF maxSizeHint(); + QSizeF minSizeHint(); QSizeF sizeHint(int index); void itemsInserted(const KItemRangeList& itemRanges); @@ -52,6 +53,7 @@ private: mutable QVector m_logicalHeightHintCache; mutable qreal m_logicalWidthHint; mutable qreal m_logicalHeightHint; + mutable qreal m_minHeightHint; bool m_needsResolving; };