A set of animations is provided in the Plasma library which build on top of the Qt Kinetic animation system. Qt Kinetic is really a fairly "low-level" set of classes for defining animation timelines and having them push and pull various values around on a curve. To avoid a lot of duplication of implementation for things like "an animation that fades an item on the canvas out" as well as to provide some more semantics based options such as "make something appear", libplasma provides a way to access such animations as well as some additional curves via the Animator class. In previous releases, prior to Qt Kinetic, Animator was the animation engine. Now it's essentially a factory for animations.
When I first decided, pre-KDE SC 4.0, that libplasma should provide a way to animate things one of the things I wanted to do was to allow different Plasma applications, plugins and themes to either add new animations or define and alter existing ones. Zack may even remember that conversation from my living room a few years back. :)
We ended up delaying work on that when we found out that Qt Kinetic was in development. Now that we have both Qt Kinetic and good support for it in libplasma, we could move on to realizing that part of the vision.
- Desktop themes may want different animations; for instance, one theme may wish for a Plasmoid to spin and grow when it appears instead of grow and pulse.
- Different Plasma Workspace shells may have different needs: Plasma Desktop may want something more eye catchy and can afford to spend more CPU cycles, while Plasma Mobile may not.
- A scripted Plasmoid may wish to provide additional animations for its own use and distribute them as part of the package.