diff options
| author | Frank Reininghaus <[email protected]> | 2014-02-11 18:28:22 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2014-02-11 18:28:32 +0100 |
| commit | 502016c1a7dc02b9e7b066b58222d3a204dd92aa (patch) | |
| tree | 74bc60d0f8e32900fd9280a650a4025d93780afc /src | |
| parent | 709c33677612541e633c02376747a4ea604aa31c (diff) | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/kitemlistview.cpp | 3 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistviewlayouter.cpp | 42 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistviewlayouter.h | 5 |
3 files changed, 11 insertions, 39 deletions
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index 38ce63af0..82f8a2053 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -111,8 +111,7 @@ KItemListView::KItemListView(QGraphicsWidget* parent) : m_sizeHintResolver = new KItemListSizeHintResolver(this); - m_layouter = new KItemListViewLayouter(this); - m_layouter->setSizeHintResolver(m_sizeHintResolver); + m_layouter = new KItemListViewLayouter(m_sizeHintResolver, this); m_animation = new KItemListViewAnimation(this); connect(m_animation, SIGNAL(finished(QGraphicsWidget*,KItemListViewAnimation::AnimationType)), 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<KItemListViewLayouter*>(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]; diff --git a/src/kitemviews/private/kitemlistviewlayouter.h b/src/kitemviews/private/kitemlistviewlayouter.h index 5ae472411..0efcab12b 100644 --- a/src/kitemviews/private/kitemlistviewlayouter.h +++ b/src/kitemviews/private/kitemlistviewlayouter.h @@ -50,7 +50,7 @@ class LIBDOLPHINPRIVATE_EXPORT KItemListViewLayouter : public QObject Q_OBJECT public: - KItemListViewLayouter(QObject* parent = 0); + KItemListViewLayouter(KItemListSizeHintResolver* sizeHintResolver, QObject* parent = 0); virtual ~KItemListViewLayouter(); void setScrollOrientation(Qt::Orientation orientation); @@ -103,9 +103,6 @@ public: void setModel(const KItemModelBase* model); const KItemModelBase* model() const; - void setSizeHintResolver(KItemListSizeHintResolver* sizeHintResolver); - const KItemListSizeHintResolver* sizeHintResolver() const; - /** * @return The first (at least partly) visible index. -1 is returned * if the item count is 0. |
