implemented drawSizeGrip and drawBorderOnMaximizedWindows options

wilder-pre-rebase
Hugo Pereira Da Costa 11 years ago
parent 5ef5740435
commit cc94dd9886
  1. 26
      windec/kdecoration2/breezedecoration.cpp
  2. 10
      windec/kdecoration2/breezedecoration.h
  3. 10
      windec/kdecoration2/config/breezeconfigwidget.cpp

@ -168,7 +168,7 @@ namespace Breeze
void Decoration::updateTitleBar()
{
auto s = settings();
const bool maximized = client().data()->isMaximized();
const bool maximized = isMaximized();
const int width = client().data()->width();
const int height = maximized ? borderTop() : borderTop() - s->smallSpacing()*Metrics::TitleBar_TopMargin;
const int x = maximized ? 0 : s->largeSpacing()*Metrics::TitleBar_SideMargin;
@ -223,6 +223,8 @@ namespace Breeze
//________________________________________________________________
void Decoration::reconfigure()
{
// read internal settings
m_internalSettings.read();
// animation
@ -232,7 +234,7 @@ namespace Breeze
recalculateBorders();
// size grip
if( settings()->borderSize() == KDecoration2::BorderSize::None ) createSizeGrip();
if( settings()->borderSize() == KDecoration2::BorderSize::None && m_internalSettings.drawSizeGrip() ) createSizeGrip();
else deleteSizeGrip();
}
@ -243,8 +245,8 @@ namespace Breeze
auto s = settings();
const auto c = client().data();
const Qt::Edges edges = c->adjacentScreenEdges();
int left = c->isMaximizedHorizontally() || edges.testFlag(Qt::LeftEdge) ? 0 : borderSize(s);
int right = c->isMaximizedHorizontally() || edges.testFlag(Qt::RightEdge) ? 0 : borderSize(s);
int left = isMaximizedHorizontally() || edges.testFlag(Qt::LeftEdge) ? 0 : borderSize(s);
int right = isMaximizedHorizontally() || edges.testFlag(Qt::RightEdge) ? 0 : borderSize(s);
QFontMetrics fm(s->font());
int top = qMax(fm.boundingRect(c->caption()).height(), buttonHeight() );
@ -255,9 +257,9 @@ namespace Breeze
top += baseSize*Metrics::TitleBar_TopMargin + 1;
// padding above
if (!c->isMaximized()) top += baseSize*TitleBar_BottomMargin;
if (!isMaximized()) top += baseSize*TitleBar_BottomMargin;
int bottom = c->isMaximizedVertically() || edges.testFlag(Qt::BottomEdge) ? 0 : borderSize(s, true);
int bottom = isMaximizedVertically() || edges.testFlag(Qt::BottomEdge) ? 0 : borderSize(s, true);
setBorders(QMargins(left, top, right, bottom));
// extended sizes
@ -290,8 +292,8 @@ namespace Breeze
void Decoration::updateButtonPositions()
{
auto s = settings();
const int vPadding = (client().data()->isMaximized() ? 0 : s->smallSpacing()*Metrics::TitleBar_TopMargin) + (captionHeight()-buttonHeight())/2;
const int hPadding = client().data()->isMaximized() ? 0 : s->smallSpacing()*Metrics::TitleBar_SideMargin;
const int vPadding = (isMaximized() ? 0 : s->smallSpacing()*Metrics::TitleBar_TopMargin) + (captionHeight()-buttonHeight())/2;
const int hPadding = isMaximized() ? 0 : s->smallSpacing()*Metrics::TitleBar_SideMargin;
m_rightButtons->setSpacing(s->smallSpacing()*Metrics::TitleBar_ButtonSpacing);
m_leftButtons->setSpacing(s->smallSpacing()*Metrics::TitleBar_ButtonSpacing);
@ -338,7 +340,7 @@ namespace Breeze
painter->setBrush(gradient);
painter->setPen(Qt::NoPen);
if (c->isMaximized())
if (isMaximized())
{
painter->drawRect(titleRect);
@ -402,7 +404,7 @@ namespace Breeze
int Decoration::captionHeight() const
{
return client().data()->isMaximized() ?
return isMaximized() ?
borderTop() - settings()->smallSpacing()*Metrics::TitleBar_BottomMargin - 1:
borderTop() - settings()->smallSpacing()*(Metrics::TitleBar_BottomMargin + Metrics::TitleBar_TopMargin ) - 1;
}
@ -412,7 +414,7 @@ namespace Breeze
{
const int leftOffset = m_leftButtons->geometry().x() + m_leftButtons->geometry().width() + Metrics::TitleBar_SideMargin*settings()->smallSpacing();
const int rightOffset = size().width() - m_rightButtons->geometry().x() + Metrics::TitleBar_SideMargin*settings()->smallSpacing();
const int yOffset = client().data()->isMaximized() ? 0 : settings()->smallSpacing()*Metrics::TitleBar_TopMargin;
const int yOffset = isMaximized() ? 0 : settings()->smallSpacing()*Metrics::TitleBar_TopMargin;
QRect boundingRect( settings()->fontMetrics().boundingRect( client().data()->caption()).toRect() );
boundingRect.setTop( yOffset );
@ -531,7 +533,7 @@ namespace Breeze
if( ( c->isResizeable() && c->windowId() != 0 ) )
{
m_sizeGrip = new SizeGrip( this );
m_sizeGrip->setVisible( !( c->isMaximized() || c->isShaded() ) );
m_sizeGrip->setVisible( !( isMaximized() || c->isShaded() ) );
}
#endif

@ -27,6 +27,7 @@
#include "breezesettings.h"
#include <KDecoration2/Decoration>
#include <KDecoration2/DecoratedClient>
#include <QPalette>
#include <QPropertyAnimation>
@ -112,6 +113,11 @@ namespace Breeze
void paintTitleBar(QPainter *painter, const QRect &repaintRegion);
void createShadow();
//*@name maximization modes
inline bool isMaximized( void ) const;
inline bool isMaximizedHorizontally( void ) const;
inline bool isMaximizedVertically( void ) const;
//*@name size grip
//@{
@ -140,6 +146,10 @@ namespace Breeze
};
bool Decoration::isMaximized( void ) const { return client().data()->isMaximized() && !m_internalSettings.drawBorderOnMaximizedWindows(); }
bool Decoration::isMaximizedHorizontally( void ) const { return client().data()->isMaximizedHorizontally() && !m_internalSettings.drawBorderOnMaximizedWindows(); }
bool Decoration::isMaximizedVertically( void ) const { return client().data()->isMaximizedVertically() && !m_internalSettings.drawBorderOnMaximizedWindows(); }
}
#endif

@ -46,6 +46,8 @@ namespace Breeze
// track ui changes
connect( m_ui.titleAlignment, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged()) );
connect( m_ui.buttonSize, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged()) );
connect( m_ui.drawBorderOnMaximizedWindows, SIGNAL(clicked()), SLOT(updateChanged()) );
connect( m_ui.drawSizeGrip, SIGNAL(clicked()), SLOT(updateChanged()) );
// track animations changes
connect( m_ui.animationsEnabled, SIGNAL(clicked()), SLOT(updateChanged()) );
@ -63,6 +65,8 @@ namespace Breeze
if( !m_internalSettings ) return;
m_ui.titleAlignment->setCurrentIndex( m_internalSettings->titleAlignment() );
m_ui.buttonSize->setCurrentIndex( m_internalSettings->buttonSize() );
m_ui.drawBorderOnMaximizedWindows->setChecked( m_internalSettings->drawBorderOnMaximizedWindows() );
m_ui.drawSizeGrip->setChecked( m_internalSettings->drawSizeGrip() );
m_ui.animationsEnabled->setChecked( m_internalSettings->animationsEnabled() );
m_ui.animationsDuration->setValue( m_internalSettings->animationsDuration() );
setChanged( false );
@ -78,12 +82,12 @@ namespace Breeze
// apply modifications from ui
m_internalSettings->setTitleAlignment( m_ui.titleAlignment->currentIndex() );
m_internalSettings->setButtonSize( m_ui.buttonSize->currentIndex() );
m_internalSettings->setDrawBorderOnMaximizedWindows( m_ui.drawBorderOnMaximizedWindows->isChecked() );
m_internalSettings->setDrawSizeGrip( m_ui.drawSizeGrip->isChecked() );
m_internalSettings->setAnimationsEnabled( m_ui.animationsEnabled->isChecked() );
m_internalSettings->setAnimationsDuration( m_ui.animationsDuration->value() );
setChanged( false );
}
//_______________________________________________
@ -98,6 +102,8 @@ 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.drawBorderOnMaximizedWindows->isChecked() != m_internalSettings->drawBorderOnMaximizedWindows() ) modified = true;
else if( m_ui.drawSizeGrip->isChecked() != m_internalSettings->drawSizeGrip() ) modified = true;
// animations
else if( m_ui.animationsEnabled->isChecked() != m_internalSettings->animationsEnabled() ) modified = true;

Loading…
Cancel
Save