aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile/diveplotdatamodel.h
blob: e84645b4035081efa26fe0e2d040bee7a2c3950d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef DIVEPLOTDATAMODEL_H
#define DIVEPLOTDATAMODEL_H

#include <QAbstractTableModel>

#include "display.h"

struct dive;
struct plot_data;
struct plot_info;

class DivePlotDataModel : public QAbstractTableModel{
Q_OBJECT
public:
	enum {DEPTH, TIME, PRESSURE, TEMPERATURE, USERENTERED, COLOR, CYLINDERINDEX, SENSOR_PRESSURE, INTERPOLATED_PRESSURE,
		SAC, CEILING, TISSUE_1,TISSUE_2,TISSUE_3,TISSUE_4,TISSUE_5,TISSUE_6,TISSUE_7,TISSUE_8,TISSUE_9,TISSUE_10,
		TISSUE_11,TISSUE_12,TISSUE_13,TISSUE_14,TISSUE_15,TISSUE_16, PN2,PHE,PO2,COLUMNS};
	explicit DivePlotDataModel(QObject* parent = 0);
	virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
	virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
	virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
	virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
	void clear();
	void setDive(struct dive *d,  const plot_info& pInfo);
	const plot_info& data() const;
	int id() const;
	double pheMax();
	double pn2Max();
	double po2Max();
	void emitDataChanged();
	void calculateDecompression();
private:
	plot_info pInfo;
	int diveId;
};

#endif