aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/profile')
-rw-r--r--qt-ui/profile/divelineitem.cpp24
-rw-r--r--qt-ui/profile/divelineitem.h17
2 files changed, 41 insertions, 0 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