diff --git a/kstyle/breezehelper.cpp b/kstyle/breezehelper.cpp --- a/kstyle/breezehelper.cpp +++ b/kstyle/breezehelper.cpp @@ -1273,7 +1273,7 @@ painter->setRenderHint( QPainter::Antialiasing, true ); QRectF frameRect( rect ); - qreal radius( frameRadius( PenWidth::NoPen, -1 ) ); + qreal radius( 0 ); // pen if( outline.isValid() ) diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp --- a/kstyle/breezestyle.cpp +++ b/kstyle/breezestyle.cpp @@ -5438,14 +5438,6 @@ // adjust text rect based on font metrics textRect = option->fontMetrics.boundingRect( textRect, textFlags, tabOption->text ); - // focus color - QColor focusColor; - if( animated ) focusColor = _helper->alphaColor( _helper->focusColor( palette ), opacity ); - else if( hasFocus ) focusColor = _helper->focusColor( palette ); - - // render focus line - _helper->renderFocusLine( painter, textRect, focusColor ); - if( verticalTabs ) painter->restore(); return true; @@ -5523,7 +5515,7 @@ } else { - rect.adjust( 0, 0, 0, -1 ); + rect.adjust( 0, 0, 0, 1 ); if( isFirst ) corners |= CornerTopLeft; if( isLast ) corners |= CornerTopRight; if( isRightOfSelected ) rect.adjust( -Metrics::Frame_FrameRadius, 0, 0, 0 ); @@ -5539,11 +5531,11 @@ { corners = CornerBottomLeft|CornerBottomRight; - rect.adjust( 0, - 1, 0, 0 ); + rect.adjust( 0, -1, 0, 0 ); } else { - rect.adjust( 0, 1, 0, 0 ); + rect.adjust( 0, -1, 0, 0 ); if( isFirst ) corners |= CornerBottomLeft; if( isLast ) corners |= CornerBottomRight; if( isRightOfSelected ) rect.adjust( -Metrics::Frame_FrameRadius, 0, 0, 0 ); @@ -5562,7 +5554,7 @@ } else { - rect.adjust( 0, 0, -1, 0 ); + rect.adjust( 0, 0, 1, 0 ); if( isFirst ) corners |= CornerTopLeft; if( isLast ) corners |= CornerBottomLeft; if( isRightOfSelected ) rect.adjust( 0, -Metrics::Frame_FrameRadius, 0, 0 ); @@ -5582,7 +5574,7 @@ } else { - rect.adjust( 1, 0, 0, 0 ); + rect.adjust( -1, 0, 0, 0 ); if( isFirst ) corners |= CornerTopRight; if( isLast ) corners |= CornerBottomRight; if( isRightOfSelected ) rect.adjust( 0, -Metrics::Frame_FrameRadius, 0, 0 ); @@ -5611,7 +5603,7 @@ } else { - const auto normal( _helper->alphaColor( palette.color( QPalette::Shadow ), 0.2 ) ); + const auto normal( _helper->alphaColor( palette.color( QPalette::Disabled, QPalette::Window ), 0.2 ) ); const auto hover( _helper->alphaColor( _helper->hoverColor( palette ), 0.2 ) ); if( animated ) color = KColorUtils::mix( normal, hover, opacity ); else if( mouseOver ) color = hover; @@ -5620,7 +5612,25 @@ } // outline - const auto outline( selected ? _helper->alphaColor( palette.color( QPalette::WindowText ), 0.25 ) : QColor() ); + const auto outline( _helper->alphaColor( palette.color( QPalette::WindowText ), 0.25 ) ); + + // highlight + auto tabLine = QRectF(); + int underlineWidth = 2; + + switch( tabOption->shape ) + { + case QTabBar::RoundedWest: + case QTabBar::TriangularWest: + tabLine = QRectF( rect.x(), rect.y(), 2, rect.height() ); + break; + case QTabBar::RoundedEast: + case QTabBar::TriangularEast: + tabLine = QRectF( rect.x() + rect.width() - 2, rect.y(), 2, rect.height() ); + break; + default: + tabLine = QRectF( rect.x(), 0, rect.width(), underlineWidth ); + } // render if( selected ) @@ -5629,6 +5639,11 @@ QRegion oldRegion( painter->clipRegion() ); painter->setClipRect( option->rect, Qt::IntersectClip ); _helper->renderTabBarTab( painter, rect, color, outline, corners ); + + painter->setPen( Qt::NoPen ); + painter->setBrush( palette.color( QPalette::Highlight ) ); + painter->drawRect( tabLine ); + painter->setClipRegion( oldRegion ); } else {