New class KWidgetBlendAnimation

Matthias Kretz kretz at kde.org
Thu Jan 31 20:54:18 GMT 2008


On Thursday 31 January 2008, Frerich Raabe wrote:
> Hi Matthias,
>
> Matthias Kretz schrieb:
> > while playing with possible UI effects I think I found a rather useful
> > one: Fade UI changes.
>
> [..]
>
> > The class is attached. Please comment on the naming, usefulness, dox and
> > whether we want to have it in kdeui for 4.1. (I want to use it in my
> > Phonon KCM unless I can be convinced that there's a better UI hint than
> > this animation).
>
> I didn't build your class but I just looked at the code a bit and wondered:
>
> Why do you grab a pixmap of the to-be-changed-widget in the constructor
> (and then install an event filter on the widget so that you get all
> paint events so you can update your pixmap)?
>
> Isn't it possible to just grab a pixmap within start()? Hmm, you'd need
> to show something until start() is called. Maybe you could hide()
> yourself, or make yourself transparent, or resize to 0x0 pixels or so?

I tried many things but so far this is the only way to reliably get a pixmap 
of the updated widget. Calling grabWidget in start() gives the old pixmap, 
calling grabWidget the first time paintEvent is called also gives the old 
pixmap.

I did not try to hide the animation widget as I don't want to have any 
flicker. The widget that gets grabbed may not draw its updated version on 
screen until the animation is over.

QPainter::setRedirected is pretty useless, too. It would be so easy to just 
redirect all paints of the original widget into the pixmap. But that doesn't 
work at all.

-- 
________________________________________________________
Matthias Kretz (Germany)                            <><
http://Vir.homelinux.org/
MatthiasKretz at gmx.net, kretz at kde.org,
Matthias.Kretz at urz.uni-heidelberg.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080131/8649bce8/attachment.sig>


More information about the kde-core-devel mailing list