Plasma + QT Kinetic Preliminary Design Decisions

Akmanalp, Mehmet A makmanalp at wpi.edu
Thu Jun 4 14:34:22 CEST 2009


Hello,
I wanted to distill the discussions made previously on the list + my
thoughts and findings into something more concrete, so I can start
making a prototype soon.

* For grouping, our Animation object (or whatever) can just subclass
QAnimationGroup. QAG supplies all we need, no need to go lower to
QAbstractAnimation imho. This way, we can interopt with other Kinetic
stuff nicely. IIRC, it was also mentioned the js / ruby / python APIs
will not need to know about Kinetic.

* Now that I thought of it, I'm not exactly sure what aseigo meant by
"auto-start-when-event-loop-enters magic". Would we make QAG start
automagically with the next tick of the event loop. If so, providing
an option to not do this would also be neat, so people using our stuff
in conjunction with Kinetic stuff can have more freedom. However, how
would we detect that an animaton object is done being created?(Maybe
we're going to add more properties to it.)

* Should we set the object to animated in the Animation ctor or set it
later with a function such as .setObject()?

* Imho the new library should not depend on Plasma::Animator, I can
reimplement the stuff I need. We can phase Animator out and finally,
if I have time left over, I can work on porting stuff in the widget
dir and existing plasmoids to the new library (and after that, if I
have more time I'll work on the python bindings, but that's another
story).

* For consistency / compatibility between all the different language
bindings, returning a reference instead of using something like the <<
operator as a grouping shortcut seems like a better idea.

* Example (looks a bit cleaner in monospace):
Animation a,b;
a.setParallel(1)
 .add(Animator.blur(0.6))
 .add(Animator.bounce(2))
b.add(a)
 .add(Animator.pause(1))

* A list of effects to be definitely implemented (since they were
already being used / wanted by someone):
    - Flip
    - Slide In / Out
    - Fade In / Out
    - Expand / Contract in a direction
    - Grow / Shrink / Scale

* I'm still lacking a decent name for the class. SimpleAnimator?
KineticAnimator? Animator2? :P Maybe something shorter and easier to
type?  Dunno.

Thoughts? Comments? Suggestions?
-- 
~ mali (http://constant.inople.net/)


More information about the Plasma-devel mailing list