forked from pool/breeze
This commit is contained in:
parent
c4b7df2a66
commit
26f98c3944
@ -0,0 +1,84 @@
|
||||
From a8d2104ab36c91053da1fee3ad31d68c979965a7 Mon Sep 17 00:00:00 2001
|
||||
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
||||
Date: Thu, 26 Feb 2015 00:17:18 +0100
|
||||
Subject: [PATCH 1/4] Added an explicit flag as output from captionRect to tell
|
||||
whether caption must be ellided or not. BUG: 344552
|
||||
|
||||
---
|
||||
kdecoration/breezedecoration.cpp | 18 ++++++++++--------
|
||||
kdecoration/breezedecoration.h | 8 +++++++-
|
||||
2 files changed, 17 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp
|
||||
index 3b1479a82b19ca8427690ccc7b00b2f36f2289aa..f63306524e1301477904f284037c54ed09bbe276 100644
|
||||
--- a/kdecoration/breezedecoration.cpp
|
||||
+++ b/kdecoration/breezedecoration.cpp
|
||||
@@ -440,10 +440,13 @@ namespace Breeze
|
||||
|
||||
// draw caption
|
||||
painter->setFont(s->font());
|
||||
- const QRect cR = captionRect();
|
||||
- const QString caption = painter->fontMetrics().elidedText(c->caption(), Qt::ElideMiddle, cR.width());
|
||||
+ const auto cR = captionRect();
|
||||
+ const QString caption = cR.second ?
|
||||
+ painter->fontMetrics().elidedText(c->caption(), Qt::ElideMiddle, cR.first.width()):
|
||||
+ c->caption();
|
||||
+
|
||||
painter->setPen(m_colorSettings.font(c->isActive()));
|
||||
- painter->drawText(cR, Qt::AlignVCenter| Qt::AlignLeft | Qt::TextSingleLine, caption);
|
||||
+ painter->drawText(cR.first, Qt::AlignVCenter| Qt::AlignLeft | Qt::TextSingleLine, caption);
|
||||
|
||||
// draw all buttons
|
||||
m_leftButtons->paint(painter, repaintRegion);
|
||||
@@ -470,7 +473,7 @@ namespace Breeze
|
||||
{ return borderTop() - settings()->smallSpacing()*(Metrics::TitleBar_BottomMargin + Metrics::TitleBar_TopMargin ) - 1; }
|
||||
|
||||
//________________________________________________________________
|
||||
- QRect Decoration::captionRect() const
|
||||
+ QPair<QRect,bool> Decoration::captionRect() const
|
||||
{
|
||||
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();
|
||||
@@ -480,9 +483,8 @@ namespace Breeze
|
||||
boundingRect.setTop( yOffset );
|
||||
boundingRect.setHeight( captionHeight() );
|
||||
|
||||
- /* need to increase the bounding rect because it is sometime (font dependent)
|
||||
- too small, resulting in text being elided */
|
||||
- boundingRect.setWidth( boundingRect.width()+4 );
|
||||
+ // store original width to detect when text ellision is needed
|
||||
+ const int boundingRectWidth( boundingRect.width() );
|
||||
|
||||
switch( m_internalSettings->titleAlignment() )
|
||||
{
|
||||
@@ -518,7 +520,7 @@ namespace Breeze
|
||||
boundingRect.setLeft( qMax( boundingRect.left(), leftOffset ) );
|
||||
}
|
||||
|
||||
- return boundingRect;
|
||||
+ return qMakePair( boundingRect, boundingRect.width() < boundingRectWidth );
|
||||
|
||||
}
|
||||
|
||||
diff --git a/kdecoration/breezedecoration.h b/kdecoration/breezedecoration.h
|
||||
index 9eb6c659fb657e66d2c4dc006b22beef7b22a02c..ccdc6a67c65aad4a17e083b3f3360fc3cb57ddbc 100644
|
||||
--- a/kdecoration/breezedecoration.h
|
||||
+++ b/kdecoration/breezedecoration.h
|
||||
@@ -109,7 +109,13 @@ namespace Breeze
|
||||
void updateAnimationState();
|
||||
|
||||
private:
|
||||
- QRect captionRect() const;
|
||||
+
|
||||
+ /**
|
||||
+ return the smallest rect in which caption will be drawn,
|
||||
+ properly positionned inside the title bar. Second return parameter
|
||||
+ is set to true when text ellision is required
|
||||
+ */
|
||||
+ QPair<QRect,bool> captionRect() const;
|
||||
|
||||
void createButtons();
|
||||
void paintTitleBar(QPainter *painter, const QRect &repaintRegion);
|
||||
--
|
||||
2.3.0
|
||||
|
37
0002-Check-scrollbar-policy-before-forwarding-events.patch
Normal file
37
0002-Check-scrollbar-policy-before-forwarding-events.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 759ff9bf1ba38a47214849bc0a80cfbc7333c3a9 Mon Sep 17 00:00:00 2001
|
||||
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
||||
Date: Sun, 1 Mar 2015 18:19:10 +0100
|
||||
Subject: [PATCH 2/4] Check scrollbar policy before forwarding events BUG:
|
||||
343659
|
||||
|
||||
---
|
||||
kstyle/breezestyle.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp
|
||||
index 818eaec5e9a0143aa8bec778c620735aabbeb71c..6caa00b7259b44ac38f8db206df1317d2edafbc9 100644
|
||||
--- a/kstyle/breezestyle.cpp
|
||||
+++ b/kstyle/breezestyle.cpp
|
||||
@@ -1002,8 +1002,9 @@ namespace Breeze
|
||||
QList<QScrollBar*> scrollBars;
|
||||
if( QAbstractScrollArea* scrollArea = qobject_cast<QAbstractScrollArea*>( widget ) )
|
||||
{
|
||||
- scrollBars.append( scrollArea->horizontalScrollBar() );
|
||||
- scrollBars.append( scrollArea->verticalScrollBar() );
|
||||
+
|
||||
+ if( scrollArea->horizontalScrollBarPolicy() != Qt::ScrollBarAlwaysOff ) scrollBars.append( scrollArea->horizontalScrollBar() );
|
||||
+ if( scrollArea->verticalScrollBarPolicy() != Qt::ScrollBarAlwaysOff )scrollBars.append( scrollArea->verticalScrollBar() );
|
||||
|
||||
} else if( widget->inherits( "KTextEditor::View" ) ) {
|
||||
|
||||
@@ -5440,7 +5441,6 @@ namespace Breeze
|
||||
|
||||
const bool hasPopupMenu( toolButtonOption->subControls & SC_ToolButtonMenu );
|
||||
const bool hasInlineIndicator( toolButtonOption->features & QStyleOptionToolButton::HasMenu && !hasPopupMenu );
|
||||
-
|
||||
const QRect buttonRect( subControlRect( CC_ToolButton, option, SC_ToolButton, widget ) );
|
||||
const QRect menuRect( subControlRect( CC_ToolButton, option, SC_ToolButtonMenu, widget ) );
|
||||
|
||||
--
|
||||
2.3.0
|
||||
|
@ -0,0 +1,31 @@
|
||||
From ac6e765800cf6e78a2cae8692f6c49b75df49bda Mon Sep 17 00:00:00 2001
|
||||
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
||||
Date: Tue, 3 Mar 2015 16:37:55 +0100
|
||||
Subject: [PATCH 3/4] return parent style method when option passed to tabBar
|
||||
rect is invalid, instead of full option rect removed check on invalid tabbar
|
||||
size BUG: 344779
|
||||
|
||||
---
|
||||
kstyle/breezestyle.cpp | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp
|
||||
index 6caa00b7259b44ac38f8db206df1317d2edafbc9..e91b5da2a1622e8816a77e5cc509f9f4dd236bb2 100644
|
||||
--- a/kstyle/breezestyle.cpp
|
||||
+++ b/kstyle/breezestyle.cpp
|
||||
@@ -1548,11 +1548,10 @@ namespace Breeze
|
||||
|
||||
// cast option and check
|
||||
const QStyleOptionTabWidgetFrame* tabOption = qstyleoption_cast<const QStyleOptionTabWidgetFrame*>( option );
|
||||
- if( !tabOption ) return option->rect;
|
||||
+ if( !tabOption ) return ParentStyleClass::subElementRect( SE_TabWidgetTabBar, option, widget );
|
||||
|
||||
// do nothing if tabbar is hidden
|
||||
const QSize tabBarSize( tabOption->tabBarSize );
|
||||
- if( tabBarSize.isEmpty() ) return option->rect;
|
||||
|
||||
QRect rect( option->rect );
|
||||
QRect tabBarRect( QPoint(0, 0), tabBarSize );
|
||||
--
|
||||
2.3.0
|
||||
|
26
0004-check-widget-validity-before-calling-deleteLater.patch
Normal file
26
0004-check-widget-validity-before-calling-deleteLater.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 72d18b7f5245d265fb0eb974854989aebc357724 Mon Sep 17 00:00:00 2001
|
||||
From: Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
||||
Date: Mon, 9 Mar 2015 20:52:13 +0100
|
||||
Subject: [PATCH 4/4] check widget validity before calling deleteLater BUG:
|
||||
344980
|
||||
|
||||
---
|
||||
kstyle/breezepalettehelper.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kstyle/breezepalettehelper.cpp b/kstyle/breezepalettehelper.cpp
|
||||
index e134a6557722237858850aa854bb6a485a3bb99d..1fcb3e65225002f5eef193028e656ae499961960 100644
|
||||
--- a/kstyle/breezepalettehelper.cpp
|
||||
+++ b/kstyle/breezepalettehelper.cpp
|
||||
@@ -44,7 +44,7 @@ namespace Breeze
|
||||
|
||||
//_____________________________________________________
|
||||
PaletteHelper::~PaletteHelper()
|
||||
- { _widget->deleteLater(); }
|
||||
+ { if( _widget ) _widget->deleteLater(); }
|
||||
|
||||
|
||||
//_____________________________________________________
|
||||
--
|
||||
2.3.0
|
||||
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 10 18:49:07 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Added patches from upstream:
|
||||
0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch,
|
||||
0002-Check-scrollbar-policy-before-forwarding-events.patch,
|
||||
0003-return-parent-style-method-when-option-passed-to-tab.patch
|
||||
and 0004-check-widget-validity-before-calling-deleteLater.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 20 02:43:47 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
|
@ -47,6 +47,10 @@ Url: http://www.kde.org
|
||||
#Source: http://download.kde.org/stable/plasma/%{version}/%{name}-%{version}.tar.xz
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
Source99: %{name}-rpmlintrc
|
||||
Patch0: 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch
|
||||
Patch1: 0002-Check-scrollbar-policy-before-forwarding-events.patch
|
||||
Patch2: 0003-return-parent-style-method-when-option-passed-to-tab.patch
|
||||
Patch3: 0004-check-widget-validity-before-calling-deleteLater.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -103,6 +107,10 @@ This package provides Breeze KWin decoration.
|
||||
%lang_package -n breeze5-style
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
%cmake_kf5 -d build -- -DBUILD_po=OFF -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5
|
||||
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 10 18:49:07 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Added patches from upstream:
|
||||
0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch,
|
||||
0002-Check-scrollbar-policy-before-forwarding-events.patch,
|
||||
0003-return-parent-style-method-when-option-passed-to-tab.patch
|
||||
and 0004-check-widget-validity-before-calling-deleteLater.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 20 02:43:47 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
|
@ -31,6 +31,10 @@ Group: System/GUI/KDE
|
||||
Url: http://www.kde.org
|
||||
#Source: http://download.kde.org/stable/plasma/%{version}/breeze-%{version}.tar.xz
|
||||
Source: breeze-%{version}.tar.xz
|
||||
Patch0: 0001-Added-an-explicit-flag-as-output-from-captionRect-to.patch
|
||||
Patch1: 0002-Check-scrollbar-policy-before-forwarding-events.patch
|
||||
Patch2: 0003-return-parent-style-method-when-option-passed-to-tab.patch
|
||||
Patch3: 0004-check-widget-validity-before-calling-deleteLater.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -39,6 +43,10 @@ This package contains kde4 backport of new default Plasma 5 style.
|
||||
|
||||
%prep
|
||||
%setup -q -n breeze-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
%cmake_kde4 -d build -- -DBUILD_po=OFF -DUSE_KDE4=ON
|
||||
|
Loading…
Reference in New Issue
Block a user