diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/kitemlistviewlayouter.cpp | 13 |
1 files 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; |
