diff options
Diffstat (limited to 'qt-ui/profile')
-rw-r--r-- | qt-ui/profile/divelineitem.cpp | 24 | ||||
-rw-r--r-- | qt-ui/profile/divelineitem.h | 17 |
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 |