Index: kdefx/kstyle.cpp =================================================================== --- kdefx/kstyle.cpp (revision 436923) +++ kdefx/kstyle.cpp (working copy) @@ -1311,14 +1311,7 @@ const QPoint &pos, const QStyleOption &opt ) const { - QStyle::SubControl ret = QCommonStyle::querySubControl(control, widget, pos, opt); - - if (d->scrollbarType == ThreeButtonScrollBar) { - // Enable third button - if (control == CC_ScrollBar && ret == SC_None) - ret = SC_ScrollBarSubLine; - } - return ret; + return QCommonStyle::querySubControl(control, widget, pos, opt); } @@ -1331,16 +1324,13 @@ if (control == CC_ScrollBar) { - bool threeButtonScrollBar = d->scrollbarType & ThreeButtonScrollBar; - bool platinumScrollBar = d->scrollbarType & PlatinumStyleScrollBar; bool nextScrollBar = d->scrollbarType & NextStyleScrollBar; const QScrollBar *sb = (const QScrollBar*)widget; bool horizontal = sb->orientation() == Qt::Horizontal; int sliderstart = sb->sliderStart(); int sbextent = pixelMetric(PM_ScrollBarExtent, widget); - int maxlen = (horizontal ? sb->width() : sb->height()) - - (sbextent * (threeButtonScrollBar ? 3 : 2)); + int maxlen = (horizontal ? sb->width() : sb->height()); int sliderlen; // calculate slider length @@ -1360,51 +1350,22 @@ // Subcontrols switch (sc) { - case SC_ScrollBarSubLine: { - // top/left button - if (platinumScrollBar) { - if (horizontal) - ret.setRect(sb->width() - 2 * sbextent, 0, sbextent, sbextent); - else - ret.setRect(0, sb->height() - 2 * sbextent, sbextent, sbextent); - } else - ret.setRect(0, 0, sbextent, sbextent); - break; - } + case SC_ScrollBarSubLine: + case SC_ScrollBarAddLine: + return QRect(); - case SC_ScrollBarAddLine: { - // bottom/right button + case SC_ScrollBarSubPage: { + // between top/left button and slider if (nextScrollBar) { if (horizontal) - ret.setRect(sbextent, 0, sbextent, sbextent); + ret.setRect(sbextent, 0, sliderstart-sbextent, sbextent); else - ret.setRect(0, sbextent, sbextent, sbextent); + ret.setRect(0, sbextent, sbextent, sliderstart-sbextent); } else { if (horizontal) - ret.setRect(sb->width() - sbextent, 0, sbextent, sbextent); - else - ret.setRect(0, sb->height() - sbextent, sbextent, sbextent); - } - break; - } - - case SC_ScrollBarSubPage: { - // between top/left button and slider - if (platinumScrollBar) { - if (horizontal) ret.setRect(0, 0, sliderstart, sbextent); else ret.setRect(0, 0, sbextent, sliderstart); - } else if (nextScrollBar) { - if (horizontal) - ret.setRect(sbextent*2, 0, sliderstart-2*sbextent, sbextent); - else - ret.setRect(0, sbextent*2, sbextent, sliderstart-2*sbextent); - } else { - if (horizontal) - ret.setRect(sbextent, 0, sliderstart - sbextent, sbextent); - else - ret.setRect(0, sbextent, sbextent, sliderstart - sbextent); } break; } @@ -1413,12 +1374,10 @@ // between bottom/right button and slider int fudge; - if (platinumScrollBar) - fudge = 0; - else if (nextScrollBar) - fudge = 2*sbextent; - else + if (nextScrollBar) fudge = sbextent; + else + fudge = 0; if (horizontal) ret.setRect(sliderstart + sliderlen, 0, @@ -1430,20 +1389,17 @@ } case SC_ScrollBarGroove: { - int multi = threeButtonScrollBar ? 3 : 2; int fudge; - if (platinumScrollBar) - fudge = 0; - else if (nextScrollBar) - fudge = 2*sbextent; - else + if (nextScrollBar) fudge = sbextent; + else + fudge = 0; if (horizontal) - ret.setRect(fudge, 0, sb->width() - sbextent * multi, sb->height()); + ret.setRect(fudge, 0, sb->width(), sb->height()); else - ret.setRect(0, fudge, sb->width(), sb->height() - sbextent * multi); + ret.setRect(0, fudge, sb->width(), sb->height()); break; }