summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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