mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
38ac6ed35f
ScaleTo animation will scale or shrinks an graphical element in an animated way. This is going primarelly to be used on the pictures on the profile, but can be used on anything else later. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#include "animationfunctions.h"
|
|
#include "dive.h"
|
|
#include "pref.h"
|
|
#include <QPropertyAnimation>
|
|
#include <QPointF>
|
|
|
|
namespace Animations {
|
|
|
|
void hide(QObject *obj)
|
|
{
|
|
QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity");
|
|
animation->setStartValue(1);
|
|
animation->setEndValue(0);
|
|
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
|
}
|
|
|
|
void animDelete(QObject *obj)
|
|
{
|
|
QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity");
|
|
obj->connect(animation, SIGNAL(finished()), SLOT(deleteLater()));
|
|
animation->setStartValue(1);
|
|
animation->setEndValue(0);
|
|
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
|
}
|
|
|
|
void moveTo(QObject *obj, qreal x, qreal y)
|
|
{
|
|
if (prefs.animation != 0) {
|
|
QPropertyAnimation *animation = new QPropertyAnimation(obj, "pos");
|
|
animation->setDuration(prefs.animation);
|
|
animation->setStartValue(obj->property("pos").toPointF());
|
|
animation->setEndValue(QPointF(x, y));
|
|
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
|
} else {
|
|
obj->setProperty("pos", QPointF(x, y));
|
|
}
|
|
}
|
|
|
|
void scaleTo(QObject *obj, qreal scale)
|
|
{
|
|
QPropertyAnimation *animation = new QPropertyAnimation(obj, "scale");
|
|
animation->setDuration(prefs.animation);
|
|
animation->setStartValue(obj->property("scale").toReal());
|
|
animation->setEndValue(QVariant::fromValue(scale));
|
|
animation->setEasingCurve(QEasingCurve::InCubic);
|
|
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
|
}
|
|
|
|
void moveTo(QObject *obj, const QPointF &pos)
|
|
{
|
|
moveTo(obj, pos.x(), pos.y());
|
|
}
|
|
}
|