]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix minor graphical issue in group header and items
authorPeter Penz <peter.penz19@gmail.com>
Tue, 25 Oct 2011 20:15:45 +0000 (22:15 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 25 Oct 2011 20:17:07 +0000 (22:17 +0200)
src/kitemviews/kitemlistviewlayouter.cpp

index 9b807aaf5fc561fe826148531fb90bc562e92eb0..cb0e9cf5555b64edaf3e34f11f86d91da608914d 100644 (file)
@@ -297,7 +297,10 @@ void KItemListViewLayouter::doLayout()
             // Apply the unused width equally to each column
             const qreal unusedWidth = size.width() - m_columnCount * m_columnWidth;
             if (unusedWidth > 0) {
-                const qreal columnInc = unusedWidth / (m_columnCount + 1);
+                // [Comment #1] A cast to int is done on purpose to prevent rounding issues when
+                // drawing pixmaps and drawing text or other graphic primitives: Qt uses a different
+                // rastering algorithm for the upper/left of pixmaps
+                const qreal columnInc = int(unusedWidth / (m_columnCount + 1));
                 m_columnWidth += columnInc;
                 m_xPosInc += columnInc;
             }
@@ -368,7 +371,7 @@ void KItemListViewLayouter::doLayout()
                     // (in average a character requires the halve width of the font height).
                     //
                     // TODO: Let the group headers provide a minimum width and respect this width here
-                    const qreal minimumGroupHeaderWidth = m_groupHeaderHeight * 15 / 2;
+                    const qreal minimumGroupHeaderWidth = int(m_groupHeaderHeight * 15 / 2); // See [Comment #1]
                     if (requiredItemHeight < minimumGroupHeaderWidth) {
                         requiredItemHeight = minimumGroupHeaderWidth;
                     }