From a3a19f4a06b41ac4d89fb1024a9e5d5cb420691d Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Tue, 7 Feb 2012 17:16:10 +0100 Subject: [PATCH] Compact view: Don't hide items at the bottom when grouping is turned on When grouping has been turned on, it was possible that items aligned at the bottom have been hidden. BUG: 291640 FIXED-IN: 4.8.1 --- src/kitemviews/kitemlistviewlayouter.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/kitemviews/kitemlistviewlayouter.cpp b/src/kitemviews/kitemlistviewlayouter.cpp index 4e7a91087..e30c9aa42 100644 --- a/src/kitemviews/kitemlistviewlayouter.cpp +++ b/src/kitemviews/kitemlistviewlayouter.cpp @@ -277,13 +277,24 @@ void KItemListViewLayouter::doLayout() QSizeF itemSize = m_itemSize; QSizeF size = m_size; + + const bool grouped = createGroupHeaders(); const bool horizontalScrolling = (m_scrollOrientation == Qt::Horizontal); if (horizontalScrolling) { + // Flip everything so that the layout logically can work like having + // a vertical scrolling itemSize.setWidth(m_itemSize.height()); itemSize.setHeight(m_itemSize.width()); size.setWidth(m_size.height()); size.setHeight(m_size.width()); + + if (grouped) { + // In the horizontal scrolling case all groups are aligned + // at the top, which decreases the available height. For the + // flipped data this means that the width must be decreased. + size.rwidth() -= m_groupHeaderHeight; + } } m_columnWidth = itemSize.width(); @@ -311,8 +322,6 @@ void KItemListViewLayouter::doLayout() qreal y = m_headerHeight; int rowIndex = 0; - const bool grouped = createGroupHeaders(); - int index = 0; while (index < itemCount) { qreal x = m_xPosInc; -- 2.47.3