Merge branch 'release/19.12'

This commit is contained in:
Nate Graham 2019-12-21 11:54:53 -07:00
commit 0804983685
4 changed files with 9 additions and 25 deletions

View file

@ -26,6 +26,7 @@
#include "private/kitemlistsmoothscroller.h"
#include <QApplication>
#include <QFontMetrics>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QScrollBar>
@ -260,7 +261,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();

View file

@ -334,11 +334,6 @@ QSizeF KItemListView::itemSize() const
return m_itemSize;
}
QSizeF KItemListView::itemSizeHint() const
{
return m_sizeHintResolver->minSizeHint();
}
const KItemListStyleOption& KItemListView::styleOption() const
{
return m_styleOption;

View file

@ -157,11 +157,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;

View file

@ -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;
}
}