mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	The reason for that is, even if profile widget is made with qpainter and for that reason it should be a desktop widget, it's being used on the mobile version because of a lack of QML plotting library that is fast and reliable. We discovered that it was faster just to encapsulate our Profile in a QML class and call it directly. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include "animationfunctions.h"
 | 
						|
#include "pref.h"
 | 
						|
#include <QPropertyAnimation>
 | 
						|
 | 
						|
namespace Animations {
 | 
						|
 | 
						|
	void hide(QObject *obj)
 | 
						|
	{
 | 
						|
		if (prefs.animation_speed != 0) {
 | 
						|
			QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity");
 | 
						|
			animation->setStartValue(1);
 | 
						|
			animation->setEndValue(0);
 | 
						|
			animation->start(QAbstractAnimation::DeleteWhenStopped);
 | 
						|
		} else {
 | 
						|
			obj->setProperty("opacity", 0);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	void show(QObject *obj)
 | 
						|
	{
 | 
						|
		if (prefs.animation_speed != 0) {
 | 
						|
			QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity");
 | 
						|
			animation->setStartValue(0);
 | 
						|
			animation->setEndValue(1);
 | 
						|
			animation->start(QAbstractAnimation::DeleteWhenStopped);
 | 
						|
		} else {
 | 
						|
			obj->setProperty("opacity", 1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	void animDelete(QObject *obj)
 | 
						|
	{
 | 
						|
		if (prefs.animation_speed != 0) {
 | 
						|
			QPropertyAnimation *animation = new QPropertyAnimation(obj, "opacity");
 | 
						|
			obj->connect(animation, SIGNAL(finished()), SLOT(deleteLater()));
 | 
						|
			animation->setStartValue(1);
 | 
						|
			animation->setEndValue(0);
 | 
						|
			animation->start(QAbstractAnimation::DeleteWhenStopped);
 | 
						|
		} else {
 | 
						|
			obj->setProperty("opacity", 0);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	void moveTo(QObject *obj, qreal x, qreal y)
 | 
						|
	{
 | 
						|
		if (prefs.animation_speed != 0) {
 | 
						|
			QPropertyAnimation *animation = new QPropertyAnimation(obj, "pos");
 | 
						|
			animation->setDuration(prefs.animation_speed);
 | 
						|
			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)
 | 
						|
	{
 | 
						|
		if (prefs.animation_speed != 0) {
 | 
						|
			QPropertyAnimation *animation = new QPropertyAnimation(obj, "scale");
 | 
						|
			animation->setDuration(prefs.animation_speed);
 | 
						|
			animation->setStartValue(obj->property("scale").toReal());
 | 
						|
			animation->setEndValue(QVariant::fromValue(scale));
 | 
						|
			animation->setEasingCurve(QEasingCurve::InCubic);
 | 
						|
			animation->start(QAbstractAnimation::DeleteWhenStopped);
 | 
						|
		} else {
 | 
						|
			obj->setProperty("scale", QVariant::fromValue(scale));
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	void moveTo(QObject *obj, const QPointF &pos)
 | 
						|
	{
 | 
						|
		moveTo(obj, pos.x(), pos.y());
 | 
						|
	}
 | 
						|
}
 |