From 502016c1a7dc02b9e7b066b58222d3a204dd92aa Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Tue, 11 Feb 2014 18:28:22 +0100 Subject: Ensure that KItemListViewLayouter always has a size hint resolver KItemListViewLayouter uses a KItemListSizeHintResolver to find out how much space the items will need in the view. Before this commit, the size hint resolver object could be changed at runtime, and it could also be null. However, we never made use of these possibilities, so all the code that checks if m_sizeHintResolver is null is actually not needed at all. --- src/kitemviews/private/kitemlistviewlayouter.cpp | 42 +++++------------------- 1 file changed, 9 insertions(+), 33 deletions(-) (limited to 'src/kitemviews/private/kitemlistviewlayouter.cpp') diff --git a/src/kitemviews/private/kitemlistviewlayouter.cpp b/src/kitemviews/private/kitemlistviewlayouter.cpp index 73f3d6182..9da5384d4 100644 --- a/src/kitemviews/private/kitemlistviewlayouter.cpp +++ b/src/kitemviews/private/kitemlistviewlayouter.cpp @@ -26,7 +26,7 @@ // #define KITEMLISTVIEWLAYOUTER_DEBUG -KItemListViewLayouter::KItemListViewLayouter(QObject* parent) : +KItemListViewLayouter::KItemListViewLayouter(KItemListSizeHintResolver* sizeHintResolver, QObject* parent) : QObject(parent), m_dirty(true), m_visibleIndexesDirty(true), @@ -36,7 +36,7 @@ KItemListViewLayouter::KItemListViewLayouter(QObject* parent) : m_itemMargin(), m_headerHeight(0), m_model(0), - m_sizeHintResolver(0), + m_sizeHintResolver(sizeHintResolver), m_scrollOffset(0), m_maximumScrollOffset(0), m_itemOffset(0), @@ -53,6 +53,7 @@ KItemListViewLayouter::KItemListViewLayouter(QObject* parent) : m_groupHeaderMargin(0), m_itemInfos() { + Q_ASSERT(m_sizeHintResolver); } KItemListViewLayouter::~KItemListViewLayouter() @@ -209,19 +210,6 @@ const KItemModelBase* KItemListViewLayouter::model() const return m_model; } -void KItemListViewLayouter::setSizeHintResolver(KItemListSizeHintResolver* sizeHintResolver) -{ - if (m_sizeHintResolver != sizeHintResolver) { - m_sizeHintResolver = sizeHintResolver; - m_dirty = true; - } -} - -const KItemListSizeHintResolver* KItemListViewLayouter::sizeHintResolver() const -{ - return m_sizeHintResolver; -} - int KItemListViewLayouter::firstVisibleIndex() const { const_cast(this)->doLayout(); @@ -241,12 +229,7 @@ QRectF KItemListViewLayouter::itemRect(int index) const return QRectF(); } - QSizeF sizeHint; - if (m_sizeHintResolver) { - sizeHint = m_sizeHintResolver->sizeHint(index); - } else { - sizeHint = m_itemSize; - } + QSizeF sizeHint = m_sizeHintResolver->sizeHint(index); const qreal x = m_columnOffsets.at(m_itemInfos.at(index).column); const qreal y = m_rowOffsets.at(m_itemInfos.at(index).row); @@ -299,12 +282,7 @@ QRectF KItemListViewLayouter::groupHeaderRect(int index) const break; } - qreal itemWidth; - if (m_sizeHintResolver) { - itemWidth = m_sizeHintResolver->sizeHint(index).width(); - } else { - itemWidth = m_itemSize.width(); - } + const qreal itemWidth = m_sizeHintResolver->sizeHint(index).width(); if (itemWidth > headerWidth) { headerWidth = itemWidth; @@ -482,12 +460,10 @@ void KItemListViewLayouter::doLayout() int column = 0; while (index < itemCount && column < m_columnCount) { qreal requiredItemHeight = itemSize.height(); - if (m_sizeHintResolver) { - const QSizeF sizeHint = m_sizeHintResolver->sizeHint(index); - const qreal sizeHintHeight = horizontalScrolling ? sizeHint.width() : sizeHint.height(); - if (sizeHintHeight > requiredItemHeight) { - requiredItemHeight = sizeHintHeight; - } + const QSizeF sizeHint = m_sizeHintResolver->sizeHint(index); + const qreal sizeHintHeight = horizontalScrolling ? sizeHint.width() : sizeHint.height(); + if (sizeHintHeight > requiredItemHeight) { + requiredItemHeight = sizeHintHeight; } ItemInfo& itemInfo = m_itemInfos[index]; -- cgit v1.3