Review Request: Added Plasma::PendulumCurve class

Bruno Abinader brunoabinader at gmail.com
Thu Apr 22 18:15:22 CEST 2010


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

(Updated 2010-04-22 16:15:22.236714)


Review request for Plasma, Aaron Seigo, Marco Martin, igorto, and Adenilson Cavalcanti.


Changes
-------

This patch adds the Plasma::PendulumCurve easing curve (which subclasses from QEasingAnimation) and some modifications on the Rotation animation to support a "swing" mode, in which it can pretty much simulate the same "pendulum" effect as the previous implementation (Plasma::PendulumAnimation) had. This patch has the advantage of not create yet-another-rotation-like animation plus the option to have this easing curve used by virtually any plasma animation.


Summary (updated)
-------

The Plasma::PendulumCurve class subclasses from Qt's QEasingCurve and implements a static function which simulates a "pendulum" effect by varying the progress value from 0 to 1, 1 to 0, 0 to -1 and -1 to 0 in a linear way. Together with this easing curve, some modifications were made on the Plasma::RotationAnimation to support a property called "isSwing" which enables the "swing" mode on the target widget, with its angle decrementing through each loop count.


Diffs (updated)
-----

  trunk/KDE/kdelibs/plasma/CMakeLists.txt 1117560 
  trunk/KDE/kdelibs/plasma/animations/animation.h 1117560 
  trunk/KDE/kdelibs/plasma/animations/pendulumcurve.h PRE-CREATION 
  trunk/KDE/kdelibs/plasma/animations/pendulumcurve.cpp PRE-CREATION 
  trunk/KDE/kdelibs/plasma/animations/rotation.cpp 1117560 
  trunk/KDE/kdelibs/plasma/animations/rotation_p.h 1117560 

Diff: http://reviewboard.kde.org/r/3513/diff


Testing (updated)
-------

An example code was added to the "plasma applet animation example" (in kdeexamples/plasma/c++/plasmoid/animation). That code will be later commited, after this request gets successfully merged. You can grab the example code here: http://pastebin.com/07ntUsBM


Thanks,

Bruno



More information about the Plasma-devel mailing list