]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Respect style's viewport scrollbar layout policy
authorChristoph Feck <christoph@maxiom.de>
Mon, 12 Dec 2011 16:36:19 +0000 (17:36 +0100)
committerChristoph Feck <christoph@maxiom.de>
Mon, 12 Dec 2011 16:36:19 +0000 (17:36 +0100)
REVIEW: 103381

src/kitemviews/kitemlistcontainer.cpp

index 8ca983acde62a6f047bc7678f051e68bb4aaa70c..930762e628cbfd13eca2e1f456880201c7c1e7d5 100644 (file)
@@ -33,6 +33,7 @@
 #include <QPropertyAnimation>
 #include <QScrollBar>
 #include <QStyle>
+#include <QStyleOption>
 
 #include <KDebug>
 
@@ -279,13 +280,20 @@ void KItemListContainer::updateGeometries()
 {
     QRect rect = geometry();
 
+    int extra = frameWidth() * 2;
+    QStyleOption option;
+    option.initFrom(this);
+    if (style()->styleHint(QStyle::SH_ScrollView_FrameOnlyAroundContents, &option, this)) {
+        extra += style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing, &option, this);
+    }
+
     const int widthDec = verticalScrollBar()->isVisible()
-                         ? frameWidth() + style()->pixelMetric(QStyle::PM_ScrollBarExtent)
-                         : frameWidth() * 2;
+                         ? extra + style()->pixelMetric(QStyle::PM_ScrollBarExtent, &option, this)
+                         : extra;
 
     const int heightDec = horizontalScrollBar()->isVisible()
-                          ? frameWidth() + style()->pixelMetric(QStyle::PM_ScrollBarExtent)
-                          : frameWidth() * 2;
+                          ? extra + style()->pixelMetric(QStyle::PM_ScrollBarExtent, &option, this)
+                          : extra;
 
     rect.adjust(0, 0, -widthDec, -heightDec);