[PATCH] Font color fixes with partly inverted color schemes

Thomas Lübking thomas.luebking at web.de
Sun Oct 25 17:38:45 CET 2009


This is triggered by the very last change, adding "( option.state & 
QStyle::State_MouseOver )"

The reason is a structural problem, the ui style is invoked to paint the 
general item background, including the hover indicator.
For many styles this is a shade between the background (or wrongly implemented 
the base) color and the highlight color, but actually it could be everything 
(and is in Michaels case rather shifted towards the highlight color, maybe 
depending on the highlight/background value or contrast)

This is no problem as long as the style also paints the foreground, but this 
is not the case here.
Therefore the style and the delegate do NOT share information about the 
current background structure.

There three options to solve this:
a) take full control over the painted background as well (especially the hover 
indication)
b) hope for the style to set a proper color and only alter the color when 
really about to paint the packground (focus indicator)
c) redirect the background painting and analyze it, then pick a contrasting 
color

The best option would imho be a.
(b is unreliable and c pretty inefficient)

To do this you'll have to copy the styleoption, delete the hover flag from the 
copy, pass this down to the style, paint your own hover indicator that's 
guaranteed to contrast either with the highlight or window text color.
(If you're evil you can store the flag, const_cast the option and reset the 
flag)

Side note:
I'd strongly suggest to make the fg/bg roles properties and set them with the 
delegate, otherwise e.g. a switch to base/text colors will force you to alter 
the delegate as well and you could not use the same delegate implemantation of 
different visual approaches just for a color bug.

Regards,
Thomas

Am Sunday 25 October 2009 schrieb Mark Kretschmann:
> Michael, the patch does strange things with the text color when
> hovering over an item with my default color scheme. It's now white
> instead of black, causing readability issues,.
> 
> I'm attaching two screenshots that illustrate the problem, first old,
> then new. See the topmost item of the playlist on the right side.
> 



More information about the Amarok-devel mailing list