diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2014-01-14 17:17:17 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-01-16 10:12:30 +0700 |
commit | 581faa598e07f87de2f1dd23b383faad9cb18a51 (patch) | |
tree | cdfc7dec6e8f71160f7898dab423f46682db5567 /qt-ui/profile/diveprofileitem.h | |
parent | 7d5cf325016925f4072aa31b92beaae4f9a59695 (diff) | |
download | subsurface-581faa598e07f87de2f1dd23b383faad9cb18a51.tar.gz |
Added the DiveProfileItem that uses the DiveProfileModel to diplay data.
I've used the paint() method on it ( even if it's not necessary
on a QGraphicsView ) to reduce absurdely the number of items that are
inserted on the QGraphicsScene ( each small line of the profile should
be an item if it was not for this, it's like that on the old profile. )
and thus reducing the memory consumption, speed and so on.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile/diveprofileitem.h')
-rw-r--r-- | qt-ui/profile/diveprofileitem.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/qt-ui/profile/diveprofileitem.h b/qt-ui/profile/diveprofileitem.h new file mode 100644 index 000000000..1e8c0b296 --- /dev/null +++ b/qt-ui/profile/diveprofileitem.h @@ -0,0 +1,48 @@ +#ifndef DIVEPROFILEITEM_H +#define DIVEPROFILEITEM_H + +#include <QObject> +#include <QGraphicsPolygonItem> + +/* This is the Profile Item, it should be used for quite a lot of things + on the profile view. The usage should be pretty simple: + + DiveProfileItem *profile = new DiveProfileItem(); + profile->setVerticalAxis( profileYAxis ); + profile->setHorizontalAxis( timeAxis ); + profile->setModel( DiveDataModel ); + profile->setHorizontalDataColumn( DiveDataModel::TIME ); + profile->setVerticalDataColumn( DiveDataModel::DEPTH ); + scene()->addItem(profile); + + This is a generically item and should be used as a base for others, I think... +*/ + +class DiveCartesianAxis; +class QAbstractTableModel; + +class DiveProfileItem : public QObject, public QGraphicsPolygonItem{ + Q_OBJECT + Q_PROPERTY(QPointF pos WRITE setPos READ pos) + Q_PROPERTY(qreal x WRITE setX READ x) + Q_PROPERTY(qreal y WRITE setY READ y) +public: + DiveProfileItem(); + void setVerticalAxis(DiveCartesianAxis *vertical); + void setHorizontalAxis(DiveCartesianAxis *horizontal); + void setModel(QAbstractTableModel *model); + void setHorizontalDataColumn(int column); + void setVerticalDataColumn(int column); + virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0); +public slots: + void modelDataChanged(); +private: + DiveCartesianAxis *hAxis; + DiveCartesianAxis *vAxis; + QAbstractTableModel *dataModel; + int hDataColumn; + int vDataColumn; +}; + + +#endif
\ No newline at end of file |