From 1b40ac8fc9e93c5429b1cb85acfb5ecf3809903e18faa096d9170177a1266f80 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sun, 2 Oct 2016 12:10:31 +0000 Subject: [PATCH] Accepting request 432456 from home:wolfi323:branches:KDE:Frameworks5:LTS - Add add-support-for-Q3ListView-to-the-KDE4-style.patch to fix the display of the collapse/expand icon in Q3ListView that still may be used by some KDE4 applications, knode e.g. (boo#973728) OBS-URL: https://build.opensuse.org/request/show/432456 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5:LTS/breeze?expand=0&rev=11 --- ...ort-for-Q3ListView-to-the-KDE4-style.patch | 88 +++++++++++++++++++ breeze4-style.changes | 7 ++ breeze4-style.spec | 3 + 3 files changed, 98 insertions(+) create mode 100644 add-support-for-Q3ListView-to-the-KDE4-style.patch diff --git a/add-support-for-Q3ListView-to-the-KDE4-style.patch b/add-support-for-Q3ListView-to-the-KDE4-style.patch new file mode 100644 index 0000000..641405f --- /dev/null +++ b/add-support-for-Q3ListView-to-the-KDE4-style.patch @@ -0,0 +1,88 @@ +diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp +index 8a02d75..359d1ab 100644 +--- a/kstyle/breezestyle.cpp ++++ b/kstyle/breezestyle.cpp +@@ -929,6 +929,7 @@ namespace Breeze + case CC_ToolButton: fcn = &Style::drawToolButtonComplexControl; break; + case CC_ComboBox: fcn = &Style::drawComboBoxComplexControl; break; + case CC_SpinBox: fcn = &Style::drawSpinBoxComplexControl; break; ++ case CC_Q3ListView: fcn = &Style::drawQ3ListViewComplexControl; break; + case CC_Slider: fcn = &Style::drawSliderComplexControl; break; + case CC_Dial: fcn = &Style::drawDialComplexControl; break; + case CC_ScrollBar: fcn = &Style::drawScrollBarComplexControl; break; +@@ -6122,6 +6123,63 @@ namespace Breeze + } + + //______________________________________________________________ ++ bool Style::drawQ3ListViewComplexControl( const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget ) const ++ { ++ ++ const QStyleOptionQ3ListView* optListView( qstyleoption_cast( option ) ); ++ if( !optListView ) return true; ++ ++ // this is copied from skulpture code ++ // Copyright ( c ) 2007-2010 Christoph Feck ++ if( optListView->subControls & QStyle::SC_Q3ListView ) ++ { ++ painter->fillRect( ++ optListView->rect, ++ optListView->viewportPalette.brush( optListView->viewportBGRole ) ); ++ } ++ ++ if( optListView->subControls & QStyle::SC_Q3ListViewBranch ) ++ { ++ ++ QStyleOption opt = *static_cast( option ); ++ int y = optListView->rect.y(); ++ ++ for ( int i = 1; i < optListView->items.size(); ++i ) ++ { ++ QStyleOptionQ3ListViewItem item = optListView->items.at( i ); ++ if( y + item.totalHeight > 0 && y < optListView->rect.height() ) ++ { ++ opt.state = QStyle::State_Item; ++ if ( i + 1 < optListView->items.size() ) ++ { opt.state |= QStyle::State_Sibling; } ++ ++ if( ++ item.features & QStyleOptionQ3ListViewItem::Expandable ++ || ( item.childCount > 0 && item.height > 0 ) ) ++ { opt.state |= QStyle::State_Children | ( item.state & QStyle::State_Open ); } ++ ++ opt.rect = QRect( optListView->rect.left(), y, optListView->rect.width(), item.height ); ++ drawIndicatorBranchPrimitive( &opt, painter, widget ); ++ ++ if( ( opt.state & QStyle::State_Sibling ) && item.height < item.totalHeight ) ++ { ++ opt.state = QStyle::State_Sibling; ++ opt.rect = QRect( ++ optListView->rect.left(), y + item.height, ++ optListView->rect.width(), item.totalHeight - item.height ); ++ drawIndicatorBranchPrimitive( &opt, painter, widget ); ++ } ++ } ++ ++ y += item.totalHeight; ++ } ++ } ++ ++ return true; ++ ++ } ++ ++ //______________________________________________________________ + bool Style::drawSliderComplexControl( const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget ) const + { + +diff --git a/kstyle/breezestyle.h b/kstyle/breezestyle.h +index a627252..dcbfe4a 100644 +--- a/kstyle/breezestyle.h ++++ b/kstyle/breezestyle.h +@@ -320,6 +320,7 @@ namespace Breeze + bool drawToolButtonComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; + bool drawComboBoxComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; + bool drawSpinBoxComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; ++ bool drawQ3ListViewComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; + bool drawSliderComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; + bool drawDialComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; + bool drawScrollBarComplexControl( const QStyleOptionComplex*, QPainter*, const QWidget* ) const; diff --git a/breeze4-style.changes b/breeze4-style.changes index 4cd58b1..851cea2 100644 --- a/breeze4-style.changes +++ b/breeze4-style.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Oct 2 11:17:40 UTC 2016 - wbauer@tmo.at + +- Add add-support-for-Q3ListView-to-the-KDE4-style.patch to fix + the display of the collapse/expand icon in Q3ListView that still + may be used by some KDE4 applications, knode e.g. (boo#973728) + ------------------------------------------------------------------- Thu Sep 29 16:36:28 UTC 2016 - fabian@ritter-vogt.de diff --git a/breeze4-style.spec b/breeze4-style.spec index e15e2f8..e78a117 100644 --- a/breeze4-style.spec +++ b/breeze4-style.spec @@ -31,6 +31,8 @@ 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 +# PATCH-FIX-OPENSUSE add-support-for-Q3ListView-to-the-KDE4-style.patch boo#973728 wbauer@tmo.at -- fixes collapse/expand icon in Q3ListView that still may be used by some KDE4 applications (knode e.g.) +Patch: add-support-for-Q3ListView-to-the-KDE4-style.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -39,6 +41,7 @@ This package contains kde4 backport of new default Plasma 5 style. %prep %setup -q -n breeze-%{version} +%patch -p1 %build %cmake_kde4 -d build -- -DBUILD_po=OFF -DUSE_KDE4=ON