diff --git a/Subsurface-mobile.pro b/Subsurface-mobile.pro index a4ef4d4b6..920f0df7c 100644 --- a/Subsurface-mobile.pro +++ b/Subsurface-mobile.pro @@ -149,7 +149,6 @@ SOURCES += subsurface-mobile-main.cpp \ mobile-widgets/statsmanager.cpp \ mobile-widgets/themeinterface.cpp \ qt-models/divesummarymodel.cpp \ - qt-models/diveplotdatamodel.cpp \ qt-models/completionmodels.cpp \ qt-models/divelocationmodel.cpp \ qt-models/maplocationmodel.cpp \ @@ -305,7 +304,6 @@ HEADERS += \ mobile-widgets/themeinterface.h \ map-widget/qmlmapwidgethelper.h \ qt-models/divesummarymodel.h \ - qt-models/diveplotdatamodel.h \ qt-models/divelocationmodel.h \ qt-models/completionmodels.h \ qt-models/weightsysteminfomodel.h \ diff --git a/qt-models/CMakeLists.txt b/qt-models/CMakeLists.txt index 3210bac7c..02b9572b4 100644 --- a/qt-models/CMakeLists.txt +++ b/qt-models/CMakeLists.txt @@ -15,8 +15,6 @@ set(SUBSURFACE_GENERIC_MODELS_LIB_SRCS divelocationmodel.h diveplannermodel.cpp diveplannermodel.h - diveplotdatamodel.cpp - diveplotdatamodel.h divetripmodel.cpp divetripmodel.h filterconstraintmodel.cpp diff --git a/qt-models/diveplotdatamodel.cpp b/qt-models/diveplotdatamodel.cpp deleted file mode 100644 index 65aa0bc92..000000000 --- a/qt-models/diveplotdatamodel.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "qt-models/diveplotdatamodel.h" -#include "qt-models/diveplannermodel.h" -#include "core/profile.h" -#include "core/divelist.h" -#include "core/color.h" - -DivePlotDataModel::DivePlotDataModel(QObject *parent) : - QAbstractTableModel(parent), - dcNr(0) -{ - init_plot_info(&pInfo); - memset(&plot_deco_state, 0, sizeof(struct deco_state)); -} - -DivePlotDataModel::~DivePlotDataModel() -{ - free_plot_info_data(&pInfo); -} - -int DivePlotDataModel::columnCount(const QModelIndex&) const -{ - return COLUMNS; -} - -QVariant DivePlotDataModel::data(const QModelIndex &index, int role) const -{ - if ((!index.isValid()) || (index.row() >= pInfo.nr) || pInfo.entry == 0) - 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 get_plot_sensor_pressure(&pInfo, index.row(), 0); - case TEMPERATURE: - return item.temperature; - case COLOR: - return item.velocity; - case USERENTERED: - return false; - case SENSOR_PRESSURE: - return get_plot_sensor_pressure(&pInfo, index.row(), 0); - case INTERPOLATED_PRESSURE: - return get_plot_interpolated_pressure(&pInfo, index.row(), 0); - 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 SCR_OC_PO2: - return item.scr_OC_pO2.mbar / 1000.0; - case HEARTBEAT: - return item.heartbeat; - 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::BackgroundRole) { - switch (index.column()) { - case COLOR: - return getColor((color_index_t)(VELOCITY_COLORS_START_IDX + item.velocity)); - } - } - return QVariant(); -} - -const plot_info &DivePlotDataModel::data() const -{ - return pInfo; -} - -int DivePlotDataModel::rowCount(const QModelIndex&) 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 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 HEARTBEAT: - return tr("Heart rate"); - 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); - } - return QVariant(); -} - -void DivePlotDataModel::clear() -{ - if (rowCount() != 0) { - beginRemoveRows(QModelIndex(), 0, rowCount() - 1); - pInfo.nr = 0; - free(pInfo.entry); - free(pInfo.pressures); - pInfo.entry = nullptr; - pInfo.pressures = nullptr; - dcNr = -1; - endRemoveRows(); - } -} - -void DivePlotDataModel::setDive(const plot_info &info) -{ - beginResetModel(); - dcNr = dc_number; - free(pInfo.entry); - free(pInfo.pressures); - pInfo = info; - pInfo.entry = (plot_data *)malloc(sizeof(plot_data) * pInfo.nr); - memcpy(pInfo.entry, info.entry, sizeof(plot_data) * pInfo.nr); - pInfo.pressures = (plot_pressure_data *)malloc(sizeof(plot_pressure_data) * pInfo.nr_cylinders * pInfo.nr); - memcpy(pInfo.pressures, info.pressures, sizeof(plot_pressure_data) * pInfo.nr_cylinders * pInfo.nr); - endResetModel(); -} diff --git a/qt-models/diveplotdatamodel.h b/qt-models/diveplotdatamodel.h deleted file mode 100644 index 2cc59b976..000000000 --- a/qt-models/diveplotdatamodel.h +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef DIVEPLOTDATAMODEL_H -#define DIVEPLOTDATAMODEL_H - -#include - -#include "core/display.h" -#include "core/deco.h" -#include "core/planner.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, - PN2, - PHE, - PO2, - O2SETPOINT, - CCRSENSOR1, - CCRSENSOR2, - CCRSENSOR3, - SCR_OC_PO2, - HEARTBEAT, - INSTANT_MEANDEPTH, - COLUMNS - }; - explicit DivePlotDataModel(QObject *parent = 0); - ~DivePlotDataModel(); - int columnCount(const QModelIndex &parent = QModelIndex()) const override; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; - int rowCount(const QModelIndex &parent = QModelIndex()) const override; - void clear(); - void setDive(const plot_info &pInfo); - const plot_info &data() const; - -private: - struct plot_info pInfo; - unsigned int dcNr; - struct deco_state plot_deco_state; -}; - -#endif // DIVEPLOTDATAMODEL_H