summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2014-01-14 15:12:00 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-16 10:12:29 +0700
commitd47456b4e858fa75dadcff4a1c6525ad0137d965 (patch)
tree7dbd34c60e7842e98c4272202e6a3285f8b5a4af
parent639123a1e8bb510a4f8dd37e864032d718bd88f4 (diff)
downloadsubsurface-d47456b4e858fa75dadcff4a1c6525ad0137d965.tar.gz
Added a class based on QGraphicsLineItem that can be animated.
This class has animatedHide, animatedMoveTo and QProperty animations. it's very userful for the future creation of the Cartesian Axis that will have the ticks 'flowing' around when it's needed. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/profile/divelineitem.cpp24
-rw-r--r--qt-ui/profile/divelineitem.h17
-rw-r--r--subsurface.pro6
3 files changed, 45 insertions, 2 deletions
diff --git a/qt-ui/profile/divelineitem.cpp b/qt-ui/profile/divelineitem.cpp
new file mode 100644
index 000000000..9ceea1e70
--- /dev/null
+++ b/qt-ui/profile/divelineitem.cpp
@@ -0,0 +1,24 @@
+#include "divelineitem.h"
+#include <QPropertyAnimation>
+
+DiveLineItem::DiveLineItem(QGraphicsItem *parent) : QGraphicsLineItem(parent)
+{
+
+}
+
+void DiveLineItem::animatedHide()
+{
+ QPropertyAnimation *animation = new QPropertyAnimation(this, "opacity");
+ connect(animation, SIGNAL(finished()), SLOT(deleteLater()));
+ animation->setStartValue(1);
+ animation->setEndValue(0);
+ animation->start(QAbstractAnimation::DeleteWhenStopped);
+}
+
+void DiveLineItem::animateMoveTo(qreal x, qreal y)
+{
+ QPropertyAnimation *animation = new QPropertyAnimation(this, "pos");
+ animation->setStartValue(property("pos").toPointF());
+ animation->setEndValue(QPointF(x, y));
+ animation->start(QAbstractAnimation::DeleteWhenStopped);
+}
diff --git a/qt-ui/profile/divelineitem.h b/qt-ui/profile/divelineitem.h
new file mode 100644
index 000000000..497f803eb
--- /dev/null
+++ b/qt-ui/profile/divelineitem.h
@@ -0,0 +1,17 @@
+#ifndef DIVELINEITEM_H
+#define DIVELINEITEM_H
+
+#include <QObject>
+#include <QGraphicsLineItem>
+
+class DiveLineItem : public QObject, public QGraphicsLineItem {
+ Q_OBJECT
+ Q_PROPERTY(QPointF pos READ pos WRITE setPos)
+ Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity)
+public:
+ DiveLineItem(QGraphicsItem *parent = 0);
+ void animatedHide();
+ void animateMoveTo(qreal x, qreal y);
+};
+
+#endif \ No newline at end of file
diff --git a/subsurface.pro b/subsurface.pro
index 0c3fdb95b..1ba852d81 100644
--- a/subsurface.pro
+++ b/subsurface.pro
@@ -65,7 +65,8 @@ HEADERS = \
qt-ui/usermanual.h \
qt-ui/profile/profilewidget2.h \
qt-ui/profile/diverectitem.h \
- qt-ui/profile/divepixmapitem.h
+ qt-ui/profile/divepixmapitem.h \
+ qt-ui/profile/divelineitem.h
SOURCES = \
deco.c \
@@ -118,7 +119,8 @@ SOURCES = \
qt-ui/usermanual.cpp \
qt-ui/profile/profilewidget2.cpp \
qt-ui/profile/diverectitem.cpp \
- qt-ui/profile/divepixmapitem.cpp
+ qt-ui/profile/divepixmapitem.cpp \
+ qt-ui/profile/divelineitem.cpp
linux*: SOURCES += linux.c
mac: SOURCES += macos.c