[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    Re: [okular] ui: Port sidebar delegate to KColorScheme.
From:       Albert Astals Cid <aacid () kde ! org>
Date:       2013-02-13 22:48:28
Message-ID: 8507765.4WbPh4PK2A () xps
[Download RAW message or body]

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 <kiconloader.h>
>  #include <klocale.h>
>  #include <kmenu.h>
> +#include <kcolorscheme.h>
> 
>  #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 );
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic