El Dimecres, 13 de febrer de 2013, a les 13:03:48, Eike Hein va escriure: > Git commit a3b3545cabf1c52ce6c0a065dc415dc6fe97bf28 by Eike Hein. > Committed on 13/02/2013 at 12:59. > Pushed by hein into branch 'master'. > > Port sidebar delegate to KColorScheme. Creating a KColorScheme seems like not cheap, can you not create one for every paint? > Certain KDE color schemes have Window Background and View Text > not contrasting, which causes invisible icon labels when using > QPalette::Text on QPalette::Base. An example is the default > color scheme in openSUSE 12.3. To be honest that seems like someone should not be creating color schemes. Cheers, Albert > > Thanks to Will Stephenson for noticing. > CCMAIL:wstephenson@kde.org > > It turns out that the Places sidebar in Dolphin suffers from > the same bug, so a similar change should be done there. Frank? > CCMAIL:frank78ac@googlemail.com > > M +14 -8 ui/sidebar.cpp > > http://commits.kde.org/okular/a3b3545cabf1c52ce6c0a065dc415dc6fe97bf28 > > diff --git a/ui/sidebar.cpp b/ui/sidebar.cpp > index dbf66a9..a73779d 100644 > --- a/ui/sidebar.cpp > +++ b/ui/sidebar.cpp > @@ -29,6 +29,7 @@ > #include > #include > #include > +#include > > #include "settings.h" > > @@ -107,27 +108,32 @@ void SidebarDelegate::paint( QPainter *painter, const > QStyleOptionViewItem &opti QColor foreColor; > bool disabled = false; > bool hover = false; > + > if ( !( option.state & QStyle::State_Enabled ) ) > { > - backBrush = option.palette.brush( QPalette::Disabled, > QPalette::Base ); - foreColor = option.palette.color( > QPalette::Disabled, QPalette::Text ); + KColorScheme colorScheme( > QPalette::Disabled, KColorScheme::Window ); + backBrush = > colorScheme.background(); > + foreColor = colorScheme.foreground().color(); > disabled = true; > } > else if ( option.state & ( QStyle::State_HasFocus | > QStyle::State_Selected ) ) { > - backBrush = option.palette.brush( QPalette::Highlight ); > - foreColor = option.palette.color( QPalette::HighlightedText ); > + KColorScheme colorScheme( option.palette.currentColorGroup(), > KColorScheme::Selection ); + backBrush = colorScheme.background(); > + foreColor = colorScheme.foreground().color(); > } > else if ( option.state & QStyle::State_MouseOver ) > { > - backBrush = option.palette.color( QPalette::Highlight ).light( 115 > ); - foreColor = option.palette.color( QPalette::HighlightedText ); > + KColorScheme colorScheme( option.palette.currentColorGroup(), > KColorScheme::Selection ); + backBrush = > colorScheme.background().color().light( 115 ); + foreColor = > colorScheme.foreground().color(); > hover = true; > } > else /*if ( option.state & QStyle::State_Enabled )*/ > { > - backBrush = option.palette.brush( QPalette::Base ); > - foreColor = option.palette.color( QPalette::Text ); > + KColorScheme colorScheme( option.palette.currentColorGroup(), > KColorScheme::Window ); + backBrush = colorScheme.background(); > + foreColor = colorScheme.foreground().color(); > } > QStyle *style = QApplication::style(); > QStyleOptionViewItemV4 opt( option );