┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kitemlistcontainer.cpp1
-rw-r--r--src/kitemviews/kitemlistview.cpp2
-rw-r--r--src/kitemviews/private/kitemlistsizehintresolver.cpp8
-rw-r--r--src/kitemviews/private/kitemlistsizehintresolver.h2
4 files changed, 11 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp
index 8e64ee493..c1eae53bd 100644
--- a/src/kitemviews/kitemlistcontainer.cpp
+++ b/src/kitemviews/kitemlistcontainer.cpp
@@ -35,7 +35,6 @@
#include <QStyle>
#include <QStyleOption>
-
/**
* 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 71091033c..dbeb571a4 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 02f1865b3..5c121c667 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 841e9ca10..fa92b8682 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<qreal> m_logicalHeightHintCache;
mutable qreal m_logicalWidthHint;
mutable qreal m_logicalHeightHint;
+ mutable qreal m_minHeightHint;
bool m_needsResolving;
};