summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile/diveprofileitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/profile/diveprofileitem.h')
-rw-r--r--qt-ui/profile/diveprofileitem.h48
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