summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-models/diveplotdatamodel.cpp34
-rw-r--r--qt-models/diveplotdatamodel.h6
2 files changed, 25 insertions, 15 deletions
diff --git a/qt-models/diveplotdatamodel.cpp b/qt-models/diveplotdatamodel.cpp
index 538771331..6c008139e 100644
--- a/qt-models/diveplotdatamodel.cpp
+++ b/qt-models/diveplotdatamodel.cpp
@@ -199,20 +199,30 @@ 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; \
+static double max_gas(const plot_info &pi, double gas_pressures::*gas)
+{
+ double ret = -1;
+ for (int i = 0; i < pi.nr; ++i) {
+ if (pi.entry[i].pressures.*gas > ret)
+ ret = pi.entry[i].pressures.*gas;
}
+ return ret;
+}
+
+double DivePlotDataModel::pheMax() const
+{
+ return max_gas(pInfo, &gas_pressures::he);
+}
-MAX_PPGAS_FUNC(he, pheMax);
-MAX_PPGAS_FUNC(n2, pn2Max);
-MAX_PPGAS_FUNC(o2, po2Max);
+double DivePlotDataModel::pn2Max() const
+{
+ return max_gas(pInfo, &gas_pressures::n2);
+}
+
+double DivePlotDataModel::po2Max() const
+{
+ return max_gas(pInfo, &gas_pressures::o2);
+}
void DivePlotDataModel::emitDataChanged()
{
diff --git a/qt-models/diveplotdatamodel.h b/qt-models/diveplotdatamodel.h
index d034a62b3..36b41ac56 100644
--- a/qt-models/diveplotdatamodel.h
+++ b/qt-models/diveplotdatamodel.h
@@ -82,9 +82,9 @@ public:
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 pheMax() const;
+ double pn2Max() const;
+ double po2Max() const;
void emitDataChanged();
private: