diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2014-01-14 15:12:00 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-01-16 10:12:29 +0700 |
commit | d47456b4e858fa75dadcff4a1c6525ad0137d965 (patch) | |
tree | 7dbd34c60e7842e98c4272202e6a3285f8b5a4af | |
parent | 639123a1e8bb510a4f8dd37e864032d718bd88f4 (diff) | |
download | subsurface-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.cpp | 24 | ||||
-rw-r--r-- | qt-ui/profile/divelineitem.h | 17 | ||||
-rw-r--r-- | subsurface.pro | 6 |
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 |