Skip to content

Commit

Permalink
added option to adjust corner radius (issue #15)
Browse files Browse the repository at this point in the history
  • Loading branch information
kupiqu committed Dec 12, 2018
1 parent 69ed393 commit 04665b9
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 26 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

project(sierrabreezeenhanced)
set(PROJECT_VERSION "0.4.2")
set(PROJECT_VERSION "0.4.3")
set(PROJECT_VERSION_MAJOR 0)

cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
Expand Down
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
V0.4.3
---------

* Added option to adjust corner radius

V0.4.2
---------

Expand Down
30 changes: 15 additions & 15 deletions breezedecoration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -423,17 +423,17 @@ namespace Breeze
painter.setCompositionMode(QPainter::CompositionMode_DestinationOut);
painter.drawRoundedRect(
innerRect,
Metrics::Frame_FrameRadius + 0.5,
Metrics::Frame_FrameRadius + 0.5);
m_internalSettings->cornerRadius() + 0.5,
m_internalSettings->cornerRadius() + 0.5);

// Draw outline.
painter.setPen(withOpacity(g_shadowColor, 0.2 * strength));
painter.setBrush(Qt::NoBrush);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.drawRoundedRect(
innerRect,
Metrics::Frame_FrameRadius - 0.5,
Metrics::Frame_FrameRadius - 0.5);
m_internalSettings->cornerRadius() - 0.5,
m_internalSettings->cornerRadius() - 0.5);
}
else {
const qreal strength = static_cast<qreal>(g_shadowStrengthInactiveWindows) / 255.0;
Expand All @@ -459,17 +459,17 @@ namespace Breeze
painter.setCompositionMode(QPainter::CompositionMode_DestinationOut);
painter.drawRoundedRect(
innerRect,
Metrics::Frame_FrameRadius + 0.5,
Metrics::Frame_FrameRadius + 0.5);
m_internalSettings->cornerRadius() + 0.5,
m_internalSettings->cornerRadius() + 0.5);

// Draw outline.
painter.setPen(withOpacity(g_shadowColorInactiveWindows, 0.2 * strength));
painter.setBrush(Qt::NoBrush);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.drawRoundedRect(
innerRect,
Metrics::Frame_FrameRadius - 0.5,
Metrics::Frame_FrameRadius - 0.5);
m_internalSettings->cornerRadius() - 0.5,
m_internalSettings->cornerRadius() - 0.5);
}

painter.end();
Expand Down Expand Up @@ -713,7 +713,7 @@ namespace Breeze
// clip away the top part
if( !hideTitleBar() ) painter->setClipRect(0, borderTop(), size().width(), size().height() - borderTop(), Qt::IntersectClip);

if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect(), Metrics::Frame_FrameRadius, Metrics::Frame_FrameRadius);
if( s->isAlphaChannelSupported() ) painter->drawRoundedRect(rect(), m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius());
else painter->drawRect( rect() );

painter->restore();
Expand Down Expand Up @@ -788,19 +788,19 @@ namespace Breeze

} else if( c->isShaded() ) {

painter->drawRoundedRect(titleRect, Metrics::Frame_FrameRadius, Metrics::Frame_FrameRadius);
painter->drawRoundedRect(titleRect, m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius());

} else {

painter->setClipRect(titleRect, Qt::IntersectClip);

// the rect is made a little bit larger to be able to clip away the rounded corners at the bottom and sides
painter->drawRoundedRect(titleRect.adjusted(
isLeftEdge() ? -Metrics::Frame_FrameRadius:0,
isTopEdge() ? -Metrics::Frame_FrameRadius:0,
isRightEdge() ? Metrics::Frame_FrameRadius:0,
Metrics::Frame_FrameRadius),
Metrics::Frame_FrameRadius, Metrics::Frame_FrameRadius);
isLeftEdge() ? -m_internalSettings->cornerRadius():0,
isTopEdge() ? -m_internalSettings->cornerRadius():0,
isRightEdge() ? m_internalSettings->cornerRadius():0,
m_internalSettings->cornerRadius()),
m_internalSettings->cornerRadius(), m_internalSettings->cornerRadius());

}

Expand Down
5 changes: 5 additions & 0 deletions breezesettingsdata.kcfg
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,11 @@
<default>6</default>
</entry>

<!-- corner radius -->
<entry name="CornerRadius" type = "Int">
<default>3</default>
</entry>

<!-- maximized windows -->
<entry name="DrawBorderOnMaximizedWindows" type = "Bool">
<default>false</default>
Expand Down
5 changes: 5 additions & 0 deletions config/breezeconfigwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ namespace Breeze
connect( m_ui.titleAlignment, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged()) );
connect( m_ui.buttonSize, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged()) );
connect( m_ui.btnSpacingSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), [=](int /*i*/){updateChanged();} );
connect( m_ui.cornerRadiusSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), [=](int /*i*/){updateChanged();} );
connect( m_ui.drawBorderOnMaximizedWindows, SIGNAL(clicked()), SLOT(updateChanged()) );
connect( m_ui.drawSizeGrip, SIGNAL(clicked()), SLOT(updateChanged()) );
connect( m_ui.opaqueTitleBar, SIGNAL(clicked()), SLOT(updateChanged()) );
Expand Down Expand Up @@ -94,6 +95,7 @@ namespace Breeze
m_ui.titleAlignment->setCurrentIndex( m_internalSettings->titleAlignment() );
m_ui.buttonSize->setCurrentIndex( m_internalSettings->buttonSize() );
m_ui.btnSpacingSpinBox->setValue( m_internalSettings->buttonSpacing() );
m_ui.cornerRadiusSpinBox->setValue( m_internalSettings->cornerRadius() );
m_ui.drawBorderOnMaximizedWindows->setChecked( m_internalSettings->drawBorderOnMaximizedWindows() );
m_ui.drawSizeGrip->setChecked( m_internalSettings->drawSizeGrip() );
m_ui.opaqueTitleBar->setChecked( m_internalSettings->opaqueTitleBar() );
Expand Down Expand Up @@ -166,6 +168,7 @@ namespace Breeze
m_internalSettings->setTitleAlignment( m_ui.titleAlignment->currentIndex() );
m_internalSettings->setButtonSize( m_ui.buttonSize->currentIndex() );
m_internalSettings->setButtonSpacing( m_ui.btnSpacingSpinBox->value() );
m_internalSettings->setCornerRadius( m_ui.cornerRadiusSpinBox->value() );
m_internalSettings->setDrawBorderOnMaximizedWindows( m_ui.drawBorderOnMaximizedWindows->isChecked() );
m_internalSettings->setDrawSizeGrip( m_ui.drawSizeGrip->isChecked() );
m_internalSettings->setOpaqueTitleBar( m_ui.opaqueTitleBar->isChecked() );
Expand Down Expand Up @@ -249,6 +252,7 @@ namespace Breeze
m_ui.titleAlignment->setCurrentIndex( m_internalSettings->titleAlignment() );
m_ui.buttonSize->setCurrentIndex( m_internalSettings->buttonSize() );
m_ui.btnSpacingSpinBox->setValue( m_internalSettings->buttonSpacing() );
m_ui.cornerRadiusSpinBox->setValue( m_internalSettings->cornerRadius() );
m_ui.drawBorderOnMaximizedWindows->setChecked( m_internalSettings->drawBorderOnMaximizedWindows() );
m_ui.drawSizeGrip->setChecked( m_internalSettings->drawSizeGrip() );
m_ui.opaqueTitleBar->setChecked( m_internalSettings->opaqueTitleBar() );
Expand Down Expand Up @@ -312,6 +316,7 @@ namespace Breeze
if( m_ui.titleAlignment->currentIndex() != m_internalSettings->titleAlignment() ) modified = true;
else if( m_ui.buttonSize->currentIndex() != m_internalSettings->buttonSize() ) modified = true;
else if( m_ui.btnSpacingSpinBox->value() != m_internalSettings->buttonSpacing() ) modified = true;
else if( m_ui.cornerRadiusSpinBox->value() != m_internalSettings->cornerRadius() ) modified = true;
else if( m_ui.drawBorderOnMaximizedWindows->isChecked() != m_internalSettings->drawBorderOnMaximizedWindows() ) modified = true;
else if( m_ui.drawSizeGrip->isChecked() != m_internalSettings->drawSizeGrip() ) modified = true;
else if( m_ui.opaqueTitleBar->isChecked() != m_internalSettings->opaqueTitleBar() ) modified = true;
Expand Down
55 changes: 45 additions & 10 deletions config/ui/breezeconfigurationui.ui
Original file line number Diff line number Diff line change
Expand Up @@ -195,28 +195,62 @@
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<item row="4" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="cornerRadiusLabel">
<property name="text">
<string>Corner radius:</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="cornerRadiusSpinBox">
<property name="suffix">
<string> px</string>
</property>
<property name="prefix">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="matchColorForTitleBar">
<property name="text">
<string>Match Title Bar's and Window's color</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="3">
<item row="6" column="0" colspan="3">
<widget class="QCheckBox" name="drawBorderOnMaximizedWindows">
<property name="text">
<string>Allow resizing maximized windows from window edges</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="3">
<item row="7" column="0" colspan="3">
<widget class="QCheckBox" name="drawBackgroundGradient">
<property name="text">
<string>Draw window background gradient</string>
</property>
</widget>
</item>
<item row="7" column="0">
<item row="8" column="0">
<widget class="QLabel" name="label_7">
<property name="enabled">
<bool>false</bool>
Expand All @@ -229,7 +263,7 @@
</property>
</widget>
</item>
<item row="7" column="1" alignment="Qt::AlignLeft">
<item row="8" column="1" alignment="Qt::AlignLeft">
<widget class="QSpinBox" name="gradientSpinBox">
<property name="enabled">
<bool>false</bool>
Expand All @@ -242,28 +276,28 @@
</property>
</widget>
</item>
<item row="8" column="0" colspan="3">
<item row="9" column="0" colspan="3">
<widget class="QCheckBox" name="drawSizeGrip">
<property name="text">
<string>Add handle to resize windows with no border</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="3">
<item row="10" column="0" colspan="3">
<widget class="QCheckBox" name="drawTitleBarSeparator">
<property name="text">
<string>Draw separator between Title Bar and Window</string>
</property>
</widget>
</item>
<item row="10" column="0" colspan="3">
<item row="11" column="0" colspan="3">
<widget class="QCheckBox" name="opaqueTitleBar">
<property name="text">
<string>Opaque title bar</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="3">
<item row="12" column="0" colspan="3">
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,0,0,1">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
Expand Down Expand Up @@ -403,7 +437,7 @@
</item>
</layout>
</item>
<item row="12" column="0" colspan="3">
<item row="13" column="0" colspan="3">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
Expand Down Expand Up @@ -757,6 +791,7 @@
<tabstop>buttonSize</tabstop>
<tabstop>buttonStyle</tabstop>
<tabstop>btnSpacingSpinBox</tabstop>
<tabstop>cornerRadiusSpinBox</tabstop>
<tabstop>drawBorderOnMaximizedWindows</tabstop>
<tabstop>drawBackgroundGradient</tabstop>
<tabstop>drawSizeGrip</tabstop>
Expand Down

0 comments on commit 04665b9

Please sign in to comment.