┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kitemlistcontainer.cpp10
-rw-r--r--src/kitemviews/kitemlistview.cpp5
-rw-r--r--src/kitemviews/kitemlistview.h5
-rw-r--r--src/kitemviews/private/kitemlistsizehintresolver.cpp14
4 files changed, 9 insertions, 25 deletions
diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp
index 2deba5466..b274e75e2 100644
--- a/src/kitemviews/kitemlistcontainer.cpp
+++ b/src/kitemviews/kitemlistcontainer.cpp
@@ -27,6 +27,7 @@
#include "private/kitemlistsmoothscroller.h"
#include <QApplication>
+#include <QFontMetrics>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QScrollBar>
@@ -261,7 +262,14 @@ void KItemListContainer::updateScrollOffsetScrollBar()
if (view->scrollOrientation() == Qt::Vertical) {
smoothScroller = m_verticalSmoothScroller;
scrollOffsetScrollBar = verticalScrollBar();
- singleStep = view->itemSizeHint().height();
+
+ // Don't scroll super fast when using a wheel mouse:
+ // We want to consider one "line" to be the text label which has a
+ // roughly fixed height rather than using the height of the icon which
+ // may be very tall
+ const QFontMetrics metrics(font());
+ singleStep = metrics.height() * QApplication::wheelScrollLines();
+
// We cannot use view->size().height() because this height might
// include the header widget, which is not part of the scrolled area.
pageStep = view->verticalPageStep();
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 53682461a..e64e226ab 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -335,11 +335,6 @@ QSizeF KItemListView::itemSize() const
return m_itemSize;
}
-QSizeF KItemListView::itemSizeHint() const
-{
- return m_sizeHintResolver->minSizeHint();
-}
-
const KItemListStyleOption& KItemListView::styleOption() const
{
return m_styleOption;
diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h
index 9349e5003..3dff35a63 100644
--- a/src/kitemviews/kitemlistview.h
+++ b/src/kitemviews/kitemlistview.h
@@ -158,11 +158,6 @@ public:
*/
QSizeF itemSize() const;
- /**
- * @return The size hint of all items. It is provided by the KItemListSizeHintResolver.
- */
- QSizeF itemSizeHint() const;
-
const KItemListStyleOption& styleOption() const;
void setGeometry(const QRectF& rect) override;
diff --git a/src/kitemviews/private/kitemlistsizehintresolver.cpp b/src/kitemviews/private/kitemlistsizehintresolver.cpp
index c53bb2a4a..66784f191 100644
--- a/src/kitemviews/private/kitemlistsizehintresolver.cpp
+++ b/src/kitemviews/private/kitemlistsizehintresolver.cpp
@@ -24,7 +24,6 @@ KItemListSizeHintResolver::KItemListSizeHintResolver(const KItemListView* itemLi
m_itemListView(itemListView),
m_logicalHeightHintCache(),
m_logicalWidthHint(0.0),
- m_logicalHeightHint(0.0),
m_minHeightHint(0.0),
m_needsResolving(false)
{
@@ -34,12 +33,6 @@ KItemListSizeHintResolver::~KItemListSizeHintResolver()
{
}
-QSizeF KItemListSizeHintResolver::maxSizeHint()
-{
- updateCache();
- return QSizeF(m_logicalWidthHint, m_logicalHeightHint);
-}
-
QSizeF KItemListSizeHintResolver::minSizeHint()
{
updateCache();
@@ -162,13 +155,6 @@ void KItemListSizeHintResolver::updateCache()
{
if (m_needsResolving) {
m_itemListView->calculateItemSizeHints(m_logicalHeightHintCache, m_logicalWidthHint);
- // Set logical height as the max cached height (if the cache is not empty).
- if (m_logicalHeightHintCache.isEmpty()) {
- 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;
}
}