[Kde-games-devel] Review Request: Adapt KGamePopupItem to Qt 4.5 and 4.6 improvements

Stefan Majewsky majewsky at gmx.net
Sun Nov 29 23:24:23 CET 2009



> On 2009-11-29 21:56:48, Parker Coates wrote:
> > /trunk/KDE/kdegames/libkdegames/kgamepopupitem.cpp, line 178
> > <http://reviewboard.kde.org/r/2296/diff/1/?file=15121#file15121line178>
> >
> >     No, I don't think so. KPat doesn't use KGamePopupItem, but it has Z values above 1000. Whatever value is picked will be arbitrary, but I would go with something more obviously "big", like 1e6.

Can we agree on something like "INT_MAX - 100"? ;-) By the way, this value has always been like this, I did not touch it.


> On 2009-11-29 21:56:48, Parker Coates wrote:
> > /trunk/KDE/kdegames/libkdegames/kgamepopupitem.cpp, lines 222-247
> > <http://reviewboard.kde.org/r/2296/diff/1/?file=15121#file15121line222>
> >
> >     Is a state machine really needed? I could be wrong, but this seems like overkill for an animation with only states. Why not use just a single QParallelAnimationGroup?

The first and foremost reason for the QStateMachine is that I wanted to test this stuff. You're probably right with the overkill argument, I'll think about this again.


> On 2009-11-29 21:56:48, Parker Coates wrote:
> > /trunk/KDE/kdegames/libkdegames/kgamepopupitem_p.h, lines 42-75
> > <http://reviewboard.kde.org/r/2296/diff/1/?file=15122#file15122line42>
> >
> >     Is creating three private QGI subclasses really that much simpler then just doing everything in a single paint() method?
> >     
> >     I don't really understand what KGamePopupGraphicsObject is even needed for. Could you explain this a bit?
> >     
> >

Yes, I don't like this part of the current code, either.

On KGPGO: Only a QGraphicsObject can be connected with QPropertyAnimation. Also, having a single child item below KGPI simplifies animation, and is actually necessary to deprecate QGraphicsItem::opacity in favor of KGPI::messageOpacity. (Thinking about this again, I can probably use the QGraphicsTextItem as this master item, it's already a QGraphicsObject.)


> On 2009-11-29 21:56:48, Parker Coates wrote:
> > /trunk/KDE/kdegames/libkdegames/kgamepopupitem_p.h, lines 112-142
> > <http://reviewboard.kde.org/r/2296/diff/1/?file=15122#file15122line112>
> >
> >     Putting all this code in a header will force it to be inlined, right? Is that really what you want?

That's a private header, that has been created to improve readability. The classes in there are all internal.


- Stefan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/2296/#review3335
-----------------------------------------------------------


On 2009-11-28 19:44:51, Stefan Majewsky wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/2296/
> -----------------------------------------------------------
> 
> (Updated 2009-11-28 19:44:51)
> 
> 
> Review request for KDE Games and Dmitry Suzdalev.
> 
> 
> Summary
> -------
> 
> Apart from some general cleanup, the most interesting changes are:
> * Use QGraphicsItem::opacity. (KGamePopupItem::messageOpacity is deprecated now.)
> * Use QGraphicsPathItem and QGraphicsPixmapItem instead of painting primitives.
> * Improve event handling of the QGraphicsTextItem.
> * Radically simplify internal layouting code.
> * Instead of QTimeLine, animations are now implemented as QPropertyAnimations and orchestrated by a QStateMachine.
> 
> Note that the changes are rather extensive. (I estimate that 80% of the codebase has already changed, and I'm not finished yet.) If you prefer that, I can also send you 12 separate patches of the single commits I made in my git-svn repository.
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdegames/libkdegames/kgamepopupitem.h 1054906 
>   /trunk/KDE/kdegames/libkdegames/kgamepopupitem.cpp 1054906 
>   /trunk/KDE/kdegames/libkdegames/kgamepopupitem_p.h PRE-CREATION 
> 
> Diff: http://reviewboard.kde.org/r/2296/diff
> 
> 
> Testing
> -------
> 
> I have used kgamepopupitemtest to keep regressions at a minimum. I'm aware of and investigating the issue that hiding is not animated.
> 
> 
> Thanks,
> 
> Stefan
> 
>



More information about the kde-games-devel mailing list