diff --git a/kstyle/breezehelper.cpp b/kstyle/breezehelper.cpp index 4bae4b47..e463d285 100644 --- a/kstyle/breezehelper.cpp +++ b/kstyle/breezehelper.cpp @@ -1109,14 +1109,17 @@ namespace Breeze // setup painter painter->setRenderHint( QPainter::Antialiasing, true ); - const QRectF baseRect( rect ); + QRectF baseRect( rect ); + baseRect.adjust(0.5, 0.5, -0.5, -0.5); const qreal radius( 0.5*Metrics::Slider_GrooveThickness ); // content if( color.isValid() ) { - painter->setPen( Qt::NoPen ); - painter->setBrush( color ); + painter->setPen( color ); + auto bg = color; + bg.setAlphaF(bg.alphaF() / 2); + painter->setBrush( bg ); painter->drawRoundedRect( baseRect, radius, radius ); } @@ -1126,7 +1129,7 @@ namespace Breeze //______________________________________________________________________________ void Helper::renderDialGroove( QPainter* painter, const QRect& rect, - const QColor& color, + const QColor& fg, const QColor& bg, qreal first, qreal last ) const { @@ -1136,7 +1139,7 @@ namespace Breeze const QRectF baseRect( rect ); // content - if( color.isValid() ) + if( fg.isValid() ) { const qreal penWidth( Metrics::Slider_GrooveThickness ); const QRectF grooveRect( rect.adjusted( penWidth/2, penWidth/2, -penWidth/2, -penWidth/2 ) ); @@ -1144,58 +1147,20 @@ namespace Breeze // setup angles const int angleStart( first * 180 * 16 / M_PI ); const int angleSpan( (last - first ) * 180 * 16 / M_PI ); + + const QPen bgPen( fg, penWidth, Qt::SolidLine, Qt::RoundCap ); + const QPen fgPen( KColorUtils::overlayColors( bg, alphaColor( fg, 0.5) ), penWidth - 2, Qt::SolidLine, Qt::RoundCap ); // setup pen if( angleSpan != 0 ) { - QPen pen( color, penWidth ); - pen.setCapStyle( Qt::RoundCap ); - painter->setPen( pen ); + painter->setPen( bgPen ); painter->setBrush( Qt::NoBrush ); painter->drawArc( grooveRect, angleStart, angleSpan ); - } - } - - - } - - //______________________________________________________________________________ - void Helper::renderDialContents( - QPainter* painter, const QRect& rect, - const QColor& color, - qreal first, qreal second ) const - { - - // setup painter - painter->setRenderHint( QPainter::Antialiasing, true ); - - const QRectF baseRect( rect ); - - // content - if( color.isValid() ) - { - - // setup groove rect - const qreal penWidth( Metrics::Slider_GrooveThickness ); - const QRectF grooveRect( rect.adjusted( penWidth/2, penWidth/2, -penWidth/2, -penWidth/2 ) ); - - // setup angles - const int angleStart( first * 180 * 16 / M_PI ); - const int angleSpan( (second - first ) * 180 * 16 / M_PI ); - - // setup pen - if( angleSpan != 0 ) - { - QPen pen( color, penWidth ); - pen.setCapStyle( Qt::RoundCap ); - painter->setPen( pen ); - painter->setBrush( Qt::NoBrush ); + painter->setPen( fgPen ); painter->drawArc( grooveRect, angleStart, angleSpan ); } - } - - } //______________________________________________________________________________ @@ -1243,20 +1208,21 @@ namespace Breeze //______________________________________________________________________________ void Helper::renderProgressBarGroove( QPainter* painter, const QRect& rect, - const QColor& color ) const + const QColor& fg, const QColor& bg ) const { // setup painter painter->setRenderHint( QPainter::Antialiasing, true ); - const QRectF baseRect( rect ); + QRectF baseRect( rect ); + baseRect.adjust(0.5,0.5,-0.5,-0.5); const qreal radius( 0.5*Metrics::ProgressBar_Thickness ); // content - if( color.isValid() ) + if( fg.isValid() ) { - painter->setPen( Qt::NoPen ); - painter->setBrush( color ); + painter->setPen( fg ); + painter->setBrush( KColorUtils::overlayColors(bg, alphaColor(fg, 0.5)) ); painter->drawRoundedRect( baseRect, radius, radius ); } diff --git a/kstyle/breezehelper.h b/kstyle/breezehelper.h index df68e844..2795d8a9 100644 --- a/kstyle/breezehelper.h +++ b/kstyle/breezehelper.h @@ -210,17 +210,10 @@ namespace Breeze void renderSliderHandle( QPainter*, const QRect&, const QColor&, const QColor& outline, const QColor& shadow, bool sunken ) const; //* dial groove - void renderDialGroove( QPainter*, const QRect&, const QColor&, qreal first, qreal last ) const; - - //* dial groove - void renderDialContents( QPainter*, const QRect&, const QColor&, qreal first, qreal second ) const; + void renderDialGroove( QPainter*, const QRect&, const QColor& fg, const QColor& bg, qreal first, qreal last ) const; //* progress bar groove - void renderProgressBarGroove( QPainter*, const QRect&, const QColor& ) const; - - //* progress bar contents - void renderProgressBarContents( QPainter* painter, const QRect& rect, const QColor& color ) const - { return renderProgressBarGroove( painter, rect, color ); } + void renderProgressBarGroove( QPainter*, const QRect&, const QColor& fg, const QColor& bg) const; //* progress bar contents (animated) void renderProgressBarBusyContents( QPainter* painter, const QRect& rect, const QColor& first, const QColor& second, bool horizontal, bool reverse, int progress ) const; @@ -232,10 +225,6 @@ namespace Breeze //* scrollbar handle void renderScrollBarHandle( QPainter*, const QRect&, const QColor& ) const; - //* toolbar handle - void renderToolBarHandle( QPainter* painter, const QRect& rect, const QColor& color ) const - { return renderProgressBarGroove( painter, rect, color ); } - //* separator between scrollbar and contents void renderScrollBarBorder( QPainter*, const QRect&, const QColor& ) const; diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp index 9ab673f1..26821b69 100644 --- a/kstyle/breezestyle.cpp +++ b/kstyle/breezestyle.cpp @@ -3968,7 +3968,7 @@ namespace Breeze // render as push button const auto shadow( _helper->shadowColor( palette ) ); const auto outline( _helper->buttonOutlineColor( palette, mouseOver, hasFocus, opacity, mode ) ); - const auto background( _helper->buttonBackgroundColor( palette, mouseOver, hasFocus, false, opacity, mode ) ); + const auto background( _helper->buttonBackgroundColor( palette, mouseOver, hasFocus, sunken, opacity, mode ) ); auto frameRect( rect ); painter->setClipRect( rect ); @@ -5071,7 +5071,7 @@ namespace Breeze palette.color( QPalette::HighlightedText ) : palette.color( QPalette::Highlight ) ); - _helper->renderProgressBarContents( painter, rect, contentsColor ); + _helper->renderProgressBarGroove( painter, rect, contentsColor, palette.color(QPalette::Window) ); painter->setClipRegion( oldClipRegion ); } @@ -5084,7 +5084,7 @@ namespace Breeze { const auto& palette( option->palette ); const auto color( _helper->alphaColor( palette.color( QPalette::WindowText ), 0.3 ) ); - _helper->renderProgressBarGroove( painter, option->rect, color ); + _helper->renderProgressBarGroove( painter, option->rect, color, palette.color(QPalette::Window) ); return true; } @@ -6575,7 +6575,7 @@ namespace Breeze const qreal last( dialAngle( sliderOption, sliderOption->maximum ) ); // render groove - _helper->renderDialGroove( painter, grooveRect, grooveColor, first, last ); + _helper->renderDialGroove( painter, grooveRect, grooveColor, palette.color(QPalette::Window), first, last ); if( enabled ) { @@ -6587,7 +6587,7 @@ namespace Breeze const qreal second( dialAngle( sliderOption, sliderOption->sliderPosition ) ); // render contents - _helper->renderDialContents( painter, grooveRect, highlight, first, second ); + _helper->renderDialGroove( painter, grooveRect, highlight, palette.color(QPalette::Window), first, second ); }