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

List:       kde-commits
Subject:    [okular] ui: Port sidebar delegate to KColorScheme.
From:       Eike Hein <hein () kde ! org>
Date:       2013-02-13 12:03:48
Message-ID: 20130213120348.91316A6091 () git ! kde ! org
[Download RAW message or body]

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.

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.

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