[Okular-devel] Background in okular "shell" app

Hugo Pereira Da Costa hugo at oxygen-icons.org
Sun Jan 31 20:15:00 CET 2010


On 01/31/2010 03:31 AM, Luigi Toscano wrote:
> Hugo Pereira Da Costa wrote:
>    
>> On 01/30/2010 05:49 PM, Pino Toscano wrote:
>>      
>>> Alle domenica 31 gennaio 2010, Hugo Pereira Da Costa ha scritto:
>>>
>>>        
>>>> To me, the plain background you get when calling autofillbackground
>>>> (using the palette.color( widget->backgroundrole() ), is a feature, not
>>>> a bug.
>>>>
>>>>          
>>> See, color() != brush(). This Qt behaviour is basically bugging every widget
>>> which sets the autoFill and has the background role in the palette with
>>> something else than a color.
>>>
>>>
>>>        
>> ok, I agree with this.
>>
>> But that wont fix the issue with oxygen. its main window background is
>> not a brush, passed via the palette.
>> Maybe it could be made so (though I'm not sure about clipping), but it
>> is not at the moment. Right now its plain painting (with QPainter) in
>> re-implemented QEvent::Paint for appropriate (top level) widgets.
>>      
> I know that this removing the roots of the problem is the most complicated
> way, but... have you tried to talk to Oxygen (and/or Bespin) developers?
>    
As a matter of fact I've join the oxygen team about 6 month ago, based 
on the success of the "nitrogen" window decoration in kde-look, and have 
been the main (in terms of number of commits) developper for both the 
style and the decoration since then for both implementing new features 
and fixing bugs. Its a very nice group by the way.

I have been thinking more about setting the oxygen background in the 
palette and I am getting more and more convinced it might not be the 
right thing to do, the main reason being that the background has to be 
regenerated every time the window is resized, since it is neither 
"scale", nor tiled, when one do so. This (the regeneration) is what is 
being done now by re-implementing paintEvent. I'm not sure one wants to, 
and even can, change the palette of all widgets of an app every time a 
window is resized. Do we ?

And besides, as Pino pointed out there is an underlying Qt bug/missing 
feature behind it, that would make this change useless with current Qt.

In any case, this is not the kind of changes I would intend to put in 
the code just a few days before kde4.4 is released. I will investigate 
further for kde4.5.
In the meanwhile, people should feel free to revert my 2 lines of change 
in okular if they think it is too ugly of an hack.

As a side note: I also realized yesterday that it is probably safe to 
setAutoFillBackground( false ) in PrintPreviewMode (and leads to a much 
nicer window). But I'm unclear if this window can be embedded in some 
fancy looking background windows (apparently it cannot be in khtml, so 
I'd say it cannot). Can anyone confirm/infirm ? If this is the case, I 
guess I could commit a small tiny adendum to the previous patch.

Cheers,

Hugo

> Regards,
>    



More information about the Okular-devel mailing list