]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Compact view: Don't hide items at the bottom when grouping is turned on
authorPeter Penz <peter.penz19@gmail.com>
Tue, 7 Feb 2012 16:16:10 +0000 (17:16 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 7 Feb 2012 16:18:47 +0000 (17:18 +0100)
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

index 4e7a910873430185b8f69fd43168a006e3da1aff..e30c9aa4206d02db9f565d43d55156a432aa2408 100644 (file)
@@ -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;