From 34f9acc09ef10558d29a264df69a9d74e8fd17af Mon Sep 17 00:00:00 2001 From: Salva Ardid Date: Tue, 19 Nov 2019 22:53:20 -0500 Subject: [PATCH] Added border lines (fixes issue 12) --- ChangeLog | 2 +- breezedecoration.cpp | 49 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37f290c..deaec80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,7 @@ V0.5.0 --------- * Arguably better switch between light and dark colors -* Added border lines (Not done yet - wip to fix issue 12) +* Added border lines (fixes issue 12) * Added outline to filled rings (fixes issue 23) * Added new Symbol Style Minimal (monocolor; fixes issue 28) * Some minor improvements to Gnome Style diff --git a/breezedecoration.cpp b/breezedecoration.cpp index 7d158fe..4bc74ca 100644 --- a/breezedecoration.cpp +++ b/breezedecoration.cpp @@ -700,26 +700,59 @@ namespace Breeze painter->setBrush( m_windowColor ); // clip away the top part - if( !hideTitleBar() ) painter->setClipRect(0, borderTop(), size().width(), size().height() - borderTop(), Qt::IntersectClip); - - if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect(), m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius()); - else painter->drawRect( rect() ); + // if( !hideTitleBar() ) painter->setClipRect(0, borderTop(), size().width(), size().height() - borderTop(), Qt::IntersectClip); + + QPen border_pen1( QColor(81, 102, 107) ); + border_pen1.setWidthF( 2 ); + painter->setPen(border_pen1); + if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect().adjusted( 1, 1, -1, -1 ), m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius()); + else painter->drawRect( rect().adjusted( 1, 1, -1, -1 ) ); + + QColor borderColor2( ); + QPen border_pen2( QColor(255, 255, 0) ); + border_pen2.setWidthF( 0.5 ); + painter->setPen(border_pen2); + if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect().adjusted( 1.5, 1.5, -1.5, -1.5 ), m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius()); + else painter->drawRect( rect().adjusted( 1.5, 1.5, -1.5, -1.5 ) ); + + QColor borderColor3( c->isActive() ? + c->color( ColorGroup::Active, ColorRole::TitleBar ): + c->color( ColorGroup::Inactive, ColorRole::Frame ) ); + QPen border_pen3( borderColor3 ); + border_pen3.setWidthF( 0.5 ); + painter->setPen(border_pen3); + if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect().adjusted( 2, 2, -2, -2 ), m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius()); + else painter->drawRect( rect().adjusted( 2, 2, -2, -2 ) ); painter->restore(); } if( !hideTitleBar() ) paintTitleBar(painter, repaintRegion); - if( hasBorders() && !s->isAlphaChannelSupported() ) + if ( hasBorders() ) // && !s->isAlphaChannelSupported() ) { painter->save(); painter->setRenderHint(QPainter::Antialiasing, false); painter->setBrush( Qt::NoBrush ); - painter->setPen( c->isActive() ? + + QPen border_pen1( QColor(81, 102, 107) ); + border_pen1.setWidthF( 2 ); + painter->setPen(border_pen1); + painter->drawRect( rect().adjusted( 1, 1, -1, -1 ) ); + + QPen border_pen2( QColor(255, 255, 0) ); + border_pen2.setWidthF( 0.5 ); + painter->setPen(border_pen2); + painter->drawRect( rect().adjusted( 1.5, 1.5, -1.5, -1.5 ) ); + + QColor borderColor3( c->isActive() ? c->color( ColorGroup::Active, ColorRole::TitleBar ): - c->color( ColorGroup::Inactive, ColorRole::Foreground ) ); + c->color( ColorGroup::Inactive, ColorRole::Frame ) ); + QPen border_pen3( borderColor3 ); + border_pen3.setWidthF( 0.5 ); + painter->setPen(border_pen3); + painter->drawRect( rect().adjusted( 2, 2, -2, -2 ) ); - painter->drawRect( rect().adjusted( 0, 0, -1, -1 ) ); painter->restore(); }