subsurface/qt-models/diveplotdatamodel.h

98 lines
1.8 KiB
C
Raw Normal View History

// SPDX-License-Identifier: GPL-2.0
#ifndef DIVEPLOTDATAMODEL_H
#define DIVEPLOTDATAMODEL_H
#include <QAbstractTableModel>
#include "core/display.h"
#include "core/dive.h"
struct dive;
struct plot_data;
struct plot_info;
class DivePlotDataModel : public QAbstractTableModel {
Q_OBJECT
public:
enum {
DEPTH,
TIME,
PRESSURE,
TEMPERATURE,
USERENTERED,
COLOR,
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,
PERCENTAGE_1,
PERCENTAGE_2,
PERCENTAGE_3,
PERCENTAGE_4,
PERCENTAGE_5,
PERCENTAGE_6,
PERCENTAGE_7,
PERCENTAGE_8,
PERCENTAGE_9,
PERCENTAGE_10,
PERCENTAGE_11,
PERCENTAGE_12,
PERCENTAGE_13,
PERCENTAGE_14,
PERCENTAGE_15,
PERCENTAGE_16,
PN2,
PHE,
PO2,
O2SETPOINT,
CCRSENSOR1,
CCRSENSOR2,
CCRSENSOR3,
HEARTBEAT,
AMBPRESSURE,
GFLINE,
INSTANT_MEANDEPTH,
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;
unsigned int dcShown() const;
double pheMax();
double pn2Max();
double po2Max();
void emitDataChanged();
#ifndef SUBSURFACE_MOBILE
void calculateDecompression();
#endif
private:
struct plot_info pInfo;
int diveId;
unsigned int dcNr;
struct deco_state plot_deco_state;
};
#endif // DIVEPLOTDATAMODEL_H