[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/khtml/misc
From: Fredrik Höglund <fredrik () kde ! org>
Date: 2009-10-29 21:28:55
Message-ID: 1256851735.966331.12897.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1042470 by fredrik:
Fix the CSS 2.1 system color mapping.
BUG: 211832
M +57 -87 helper.cpp
--- trunk/KDE/kdelibs/khtml/misc/helper.cpp #1042469:1042470
@@ -30,6 +30,7 @@
#include <kconfig.h>
#include <ksharedconfig.h>
#include <kconfiggroup.h>
+#include <kglobalsettings.h>
#include <QtGui/QToolTip>
#include "css/cssvalues.h"
@@ -112,77 +113,46 @@
struct uiColors {
int css_value;
- const char * configGroup;
- const char * configEntry;
-QPalette::ColorGroup group;
-QPalette::ColorRole role;
+ QPalette::ColorGroup group;
+ QPalette::ColorRole role;
};
-const char * const wmgroup = "WM";
-const char * const generalgroup = "General";
-
-/* Mapping system settings to CSS 2
-* Tried hard to get an appropriate mapping - schlpbch
-*/
+// CSS 2.1 system color mapping
static const uiColors uimap[] = {
- // Active window border.
- { CSS_VAL_ACTIVEBORDER, wmgroup, "background", QPalette::Active, QPalette::Light \
},
- // Active window caption.
- { CSS_VAL_ACTIVECAPTION, wmgroup, "background", QPalette::Active, QPalette::Text \
},
- // Text in caption, size box, and scrollbar arrow box.
- { CSS_VAL_CAPTIONTEXT, wmgroup, "activeForeground", QPalette::Active, \
QPalette::Text },
- // Face color for three-dimensional display elements.
- { CSS_VAL_BUTTONFACE, wmgroup, 0, QPalette::Inactive, QPalette::Button },
- // Dark shadow for three-dimensional display elements (for edges facing away from \
the light source).
- { CSS_VAL_BUTTONHIGHLIGHT, wmgroup, 0, QPalette::Inactive, QPalette::Light },
- // Shadow color for three-dimensional display elements.
- { CSS_VAL_BUTTONSHADOW, wmgroup, 0, QPalette::Inactive, QPalette::Shadow },
- // Text on push buttons.
- { CSS_VAL_BUTTONTEXT, wmgroup, "buttonForeground", QPalette::Inactive, \
QPalette::ButtonText },
- // Dark shadow for three-dimensional display elements.
- { CSS_VAL_THREEDDARKSHADOW, wmgroup, 0, QPalette::Inactive, QPalette::Dark },
- // Face color for three-dimensional display elements.
- { CSS_VAL_THREEDFACE, wmgroup, 0, QPalette::Inactive, QPalette::Button },
- // Highlight color for three-dimensional display elements.
- { CSS_VAL_THREEDHIGHLIGHT, wmgroup, 0, QPalette::Inactive, QPalette::Light },
- // Light color for three-dimensional display elements (for edges facing the light \
source).
- { CSS_VAL_THREEDLIGHTSHADOW, wmgroup, 0, QPalette::Inactive, QPalette::Midlight \
},
- // Dark shadow for three-dimensional display elements.
- { CSS_VAL_THREEDSHADOW, wmgroup, 0, QPalette::Inactive, QPalette::Shadow },
-
- // Inactive window border.
- { CSS_VAL_INACTIVEBORDER, wmgroup, "background", QPalette::Disabled, \
QPalette::Background },
- // Inactive window caption.
- { CSS_VAL_INACTIVECAPTION, wmgroup, "inactiveBackground", QPalette::Disabled, \
QPalette::Background },
- // Color of text in an inactive caption.
- { CSS_VAL_INACTIVECAPTIONTEXT, wmgroup, "inactiveForeground", \
QPalette::Disabled, QPalette::Text },
- { CSS_VAL_GRAYTEXT, wmgroup, 0, QPalette::Disabled, QPalette::Text },
-
- // Menu background
- { CSS_VAL_MENU, generalgroup, "background", QPalette::Inactive, \
QPalette::Background },
- // Text in menus
- { CSS_VAL_MENUTEXT, generalgroup, "foreground", QPalette::Inactive, \
QPalette::Background },
-
- // Text of item(s) selected in a control.
- { CSS_VAL_HIGHLIGHT, generalgroup, "selectBackground", QPalette::Inactive, \
QPalette::Background },
-
- // Text of item(s) selected in a control.
- { CSS_VAL_HIGHLIGHTTEXT, generalgroup, "selectForeground", QPalette::Inactive, \
QPalette::Background },
-
- // Background color of multiple document interface.
- { CSS_VAL_APPWORKSPACE, generalgroup, "background", QPalette::Inactive, \
QPalette::Text },
-
- // Scroll bar gray area.
- { CSS_VAL_SCROLLBAR, generalgroup, "background", QPalette::Inactive, \
QPalette::Background },
-
- // Window background.
- { CSS_VAL_WINDOW, generalgroup, "windowBackground", QPalette::Inactive, \
QPalette::Base },
- // Window frame.
- { CSS_VAL_WINDOWFRAME, generalgroup, "windowBackground", QPalette::Inactive, \
QPalette::Background },
- // WindowText
- { CSS_VAL_WINDOWTEXT, generalgroup, "windowForeground", QPalette::Inactive, \
QPalette::Text },
- { CSS_VAL_TEXT, generalgroup, 0, QPalette::Inactive, QPalette::Text },
- { 0, 0, 0, QPalette::NColorGroups, QPalette::NColorRoles }
+ // MDI background color
+ { CSS_VAL_APPWORKSPACE, QPalette::Normal, QPalette::Mid },
+ // Button colors
+ { CSS_VAL_BUTTONFACE, QPalette::Normal, QPalette::Button },
+ { CSS_VAL_BUTTONHIGHLIGHT, QPalette::Normal, QPalette::Light },
+ { CSS_VAL_BUTTONSHADOW, QPalette::Normal, QPalette::Dark },
+ { CSS_VAL_BUTTONTEXT, QPalette::Normal, QPalette::ButtonText },
+ // Disabled text
+ { CSS_VAL_GRAYTEXT, QPalette::Disabled, QPalette::Text },
+ // Selected items
+ { CSS_VAL_HIGHLIGHTTEXT, QPalette::Normal, QPalette::HighlightedText },
+ { CSS_VAL_HIGHLIGHT, QPalette::Normal, QPalette::Highlight },
+ // Tooltips
+ { CSS_VAL_INFOBACKGROUND, QPalette::Normal, QPalette::ToolTipBase },
+ { CSS_VAL_INFOTEXT, QPalette::Normal, QPalette::ToolTipText },
+ // Menu colors
+ { CSS_VAL_MENU, QPalette::Normal, QPalette::Background },
+ { CSS_VAL_MENUTEXT, QPalette::Normal, QPalette::Text },
+ // Scroll bar color
+ { CSS_VAL_SCROLLBAR, QPalette::Normal, QPalette::Background },
+ // 3D elements
+ { CSS_VAL_THREEDDARKSHADOW, QPalette::Normal, QPalette::Dark },
+ { CSS_VAL_THREEDFACE, QPalette::Normal, QPalette::Button },
+ { CSS_VAL_THREEDHIGHLIGHT, QPalette::Normal, QPalette::Light },
+ { CSS_VAL_THREEDLIGHTSHADOW, QPalette::Normal, QPalette::Midlight },
+ { CSS_VAL_THREEDSHADOW, QPalette::Normal, QPalette::Mid },
+ // Window background
+ { CSS_VAL_WINDOW, QPalette::Normal, QPalette::Base },
+ // Window frame
+ { CSS_VAL_WINDOWFRAME, QPalette::Normal, QPalette::Background },
+ // WindowText
+ { CSS_VAL_WINDOWTEXT, QPalette::Normal, QPalette::Text },
+ { CSS_VAL_TEXT, QPalette::Normal, QPalette::Text },
+ { 0, QPalette::NColorGroups, QPalette::NColorRoles }
};
QColor khtml::colorForCSSValue( int css_value )
@@ -201,29 +171,29 @@
++uicol;
#ifndef APPLE_CHANGES
if ( !uicol->css_value ) {
- if ( css_value == CSS_VAL_INFOBACKGROUND )
- return QToolTip::palette().color( QPalette::Inactive, QPalette::Background );
- else if ( css_value == CSS_VAL_INFOTEXT )
- return QToolTip::palette().color( QPalette::Inactive, QPalette::Foreground );
- else if ( css_value == CSS_VAL_BACKGROUND ) {
- KConfig bckgrConfig("kdesktoprc", KConfig::NoGlobals);
- // Desktop background.
- return bckgrConfig.group( "Desktop0" ).readEntry("Color1", \
qApp->palette().color( QPalette::Disabled, QPalette::Background ) );
- }
- return QColor();
+ switch ( css_value ) {
+ case CSS_VAL_ACTIVEBORDER:
+ return qApp->palette().color(QPalette::Normal, \
QPalette::Background); + case CSS_VAL_ACTIVECAPTION:
+ return KGlobalSettings::activeTitleColor();
+ case CSS_VAL_CAPTIONTEXT:
+ return KGlobalSettings::activeTextColor();
+ case CSS_VAL_INACTIVEBORDER:
+ return qApp->palette().color(QPalette::Inactive, \
QPalette::Background); + case CSS_VAL_INACTIVECAPTION:
+ return KGlobalSettings::inactiveTitleColor();
+ case CSS_VAL_INACTIVECAPTIONTEXT:
+ return KGlobalSettings::inactiveTextColor();
+ case CSS_VAL_BACKGROUND: // Desktop background - no way to get this \
information from Plasma + return \
qApp->palette().color(QPalette::Normal, QPalette::Highlight); + default:
+ return QColor();
+ }
}
#endif
const QPalette &pal = qApp->palette();
- QColor c = pal.color( uicol->group, uicol->role );
-#ifndef APPLE_CHANGES
- if ( uicol->configEntry ) {
- KSharedConfig::Ptr globalConfig = KGlobal::config();
- c = globalConfig->group( uicol->configGroup ).readEntry( uicol->configEntry, c );
- }
-#endif
-
- return c;
+ return pal.color( uicol->group, uicol->role );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic