summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-05-29 14:51:33 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-05-29 14:14:43 -0700
commitec5717aaa1fca5b280b03858cb5da93335da3a61 (patch)
tree2566f8f70fb42dad7ccee9c5a5620997f5beb56c /qt-ui/profile
parentffc0c8ee993ce6301b8f6c0992b6e1652d2b08d7 (diff)
downloadsubsurface-ec5717aaa1fca5b280b03858cb5da93335da3a61.tar.gz
Move DivePlotDataModel to qt-models
I think with this one I'm finished. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile')
-rw-r--r--qt-ui/profile/diveplotdatamodel.cpp229
-rw-r--r--qt-ui/profile/diveplotdatamodel.h94
2 files changed, 0 insertions, 323 deletions
diff --git a/qt-ui/profile/diveplotdatamodel.cpp b/qt-ui/profile/diveplotdatamodel.cpp
deleted file mode 100644
index 3b3a288b6..000000000
--- a/qt-ui/profile/diveplotdatamodel.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-#include "diveplotdatamodel.h"
-#include "dive.h"
-#include "profile.h"
-#include "graphicsview-common.h"
-#include "divelist.h"
-
-DivePlotDataModel::DivePlotDataModel(QObject *parent) : QAbstractTableModel(parent), diveId(0)
-{
- memset(&pInfo, 0, sizeof(pInfo));
-}
-
-int DivePlotDataModel::columnCount(const QModelIndex &parent) const
-{
- return COLUMNS;
-}
-
-QVariant DivePlotDataModel::data(const QModelIndex &index, int role) const
-{
- if ((!index.isValid()) || (index.row() >= pInfo.nr))
- return QVariant();
-
- plot_data item = pInfo.entry[index.row()];
- if (role == Qt::DisplayRole) {
- switch (index.column()) {
- case DEPTH:
- return item.depth;
- case TIME:
- return item.sec;
- case PRESSURE:
- return item.pressure[0];
- case TEMPERATURE:
- return item.temperature;
- case COLOR:
- return item.velocity;
- case USERENTERED:
- return false;
- case CYLINDERINDEX:
- return item.cylinderindex;
- case SENSOR_PRESSURE:
- return item.pressure[0];
- case INTERPOLATED_PRESSURE:
- return item.pressure[1];
- case CEILING:
- return item.ceiling;
- case SAC:
- return item.sac;
- case PN2:
- return item.pressures.n2;
- case PHE:
- return item.pressures.he;
- case PO2:
- return item.pressures.o2;
- case O2SETPOINT:
- return item.o2setpoint.mbar / 1000.0;
- case CCRSENSOR1:
- return item.o2sensor[0].mbar / 1000.0;
- case CCRSENSOR2:
- return item.o2sensor[1].mbar / 1000.0;
- case CCRSENSOR3:
- return item.o2sensor[2].mbar / 1000.0;
- case HEARTBEAT:
- return item.heartbeat;
- case AMBPRESSURE:
- return AMB_PERCENTAGE;
- case GFLINE:
- return item.gfline;
- case INSTANT_MEANDEPTH:
- return item.running_sum;
- }
- }
-
- if (role == Qt::DisplayRole && index.column() >= TISSUE_1 && index.column() <= TISSUE_16) {
- return item.ceilings[index.column() - TISSUE_1];
- }
-
- if (role == Qt::DisplayRole && index.column() >= PERCENTAGE_1 && index.column() <= PERCENTAGE_16) {
- return item.percentages[index.column() - PERCENTAGE_1];
- }
-
- if (role == Qt::BackgroundRole) {
- switch (index.column()) {
- case COLOR:
- return getColor((color_indice_t)(VELOCITY_COLORS_START_IDX + item.velocity));
- }
- }
- return QVariant();
-}
-
-const plot_info &DivePlotDataModel::data() const
-{
- return pInfo;
-}
-
-int DivePlotDataModel::rowCount(const QModelIndex &parent) const
-{
- return pInfo.nr;
-}
-
-QVariant DivePlotDataModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- if (orientation != Qt::Horizontal)
- return QVariant();
-
- if (role != Qt::DisplayRole)
- return QVariant();
-
- switch (section) {
- case DEPTH:
- return tr("Depth");
- case TIME:
- return tr("Time");
- case PRESSURE:
- return tr("Pressure");
- case TEMPERATURE:
- return tr("Temperature");
- case COLOR:
- return tr("Color");
- case USERENTERED:
- return tr("User entered");
- case CYLINDERINDEX:
- return tr("Cylinder index");
- case SENSOR_PRESSURE:
- return tr("Pressure S");
- case INTERPOLATED_PRESSURE:
- return tr("Pressure I");
- case CEILING:
- return tr("Ceiling");
- case SAC:
- return tr("SAC");
- case PN2:
- return tr("pN₂");
- case PHE:
- return tr("pHe");
- case PO2:
- return tr("pO₂");
- case O2SETPOINT:
- return tr("Setpoint");
- case CCRSENSOR1:
- return tr("Sensor 1");
- case CCRSENSOR2:
- return tr("Sensor 2");
- case CCRSENSOR3:
- return tr("Sensor 3");
- case AMBPRESSURE:
- return tr("Ambient pressure");
- case HEARTBEAT:
- return tr("Heart rate");
- case GFLINE:
- return tr("Gradient factor");
- case INSTANT_MEANDEPTH:
- return tr("Mean depth @ s");
- }
- if (role == Qt::DisplayRole && section >= TISSUE_1 && section <= TISSUE_16) {
- return QString("Ceiling: %1").arg(section - TISSUE_1);
- }
- if (role == Qt::DisplayRole && section >= PERCENTAGE_1 && section <= PERCENTAGE_16) {
- return QString("Tissue: %1").arg(section - PERCENTAGE_1);
- }
- return QVariant();
-}
-
-void DivePlotDataModel::clear()
-{
- if (rowCount() != 0) {
- beginRemoveRows(QModelIndex(), 0, rowCount() - 1);
- pInfo.nr = 0;
- diveId = -1;
- dcNr = -1;
- endRemoveRows();
- }
-}
-
-void DivePlotDataModel::setDive(dive *d, const plot_info &info)
-{
- clear();
- Q_ASSERT(d != NULL);
- diveId = d->id;
- dcNr = dc_number;
- pInfo = info;
- beginInsertRows(QModelIndex(), 0, pInfo.nr - 1);
- endInsertRows();
-}
-
-unsigned int DivePlotDataModel::dcShown() const
-{
- return dcNr;
-}
-
-#define MAX_PPGAS_FUNC(GAS, GASFUNC) \
- double DivePlotDataModel::GASFUNC() \
- { \
- double ret = -1; \
- for (int i = 0, count = rowCount(); i < count; i++) { \
- if (pInfo.entry[i].pressures.GAS > ret) \
- ret = pInfo.entry[i].pressures.GAS; \
- } \
- return ret; \
- }
-
-#define MAX_SENSOR_GAS_FUNC(GASFUNC) \
- double DivePlotDataModel::GASFUNC() /* CCR: This function finds the largest measured po2 value */ \
- { /* by scanning the readings from the three individual o2 sensors. */ \
- double ret = -1; /* This is used for scaling the Y-axis for partial pressures */ \
- for (int s = 0; s < 3; s++) { /* when displaying the graphs for individual o2 sensors */ \
- for (int i = 0, count = rowCount(); i < count; i++) { /* POTENTIAL PROBLEM: the '3' (no_sensors) is hard-coded here */\
- if (pInfo.entry[i].o2sensor[s].mbar > ret) \
- ret = pInfo.entry[i].o2sensor[s].mbar; \
- } \
- } \
- return (ret / 1000.0); /* mbar -> bar conversion */ \
- }
-
-MAX_PPGAS_FUNC(he, pheMax);
-MAX_PPGAS_FUNC(n2, pn2Max);
-MAX_PPGAS_FUNC(o2, po2Max);
-MAX_SENSOR_GAS_FUNC(CCRMax);
-
-void DivePlotDataModel::emitDataChanged()
-{
- emit dataChanged(QModelIndex(), QModelIndex());
-}
-
-void DivePlotDataModel::calculateDecompression()
-{
- struct divecomputer *dc = select_dc(&displayed_dive);
- init_decompression(&displayed_dive);
- calculate_deco_information(&displayed_dive, dc, &pInfo, false);
- dataChanged(index(0, CEILING), index(pInfo.nr - 1, TISSUE_16));
-}
diff --git a/qt-ui/profile/diveplotdatamodel.h b/qt-ui/profile/diveplotdatamodel.h
deleted file mode 100644
index 6a1f9bd16..000000000
--- a/qt-ui/profile/diveplotdatamodel.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#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,
- 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();
- double CCRMax();
- void emitDataChanged();
- void calculateDecompression();
-
-private:
- struct plot_info pInfo;
- int diveId;
- unsigned int dcNr;
-};
-
-#endif // DIVEPLOTDATAMODEL_H