diff options
-rw-r--r-- | dive.c | 7 | ||||
-rw-r--r-- | dive.h | 2 | ||||
-rw-r--r-- | qt-ui/diveplanner.cpp | 4 |
3 files changed, 11 insertions, 2 deletions
@@ -101,6 +101,13 @@ double get_volume_units(unsigned int ml, int *frac, const char **units) return vol; } +unsigned int units_to_depth(double depth) +{ + if (get_units()->length == METERS) + return rint(depth * 1000); + return feet_to_mm(depth); +} + double get_depth_units(unsigned int mm, int *frac, const char **units) { int decimals; @@ -185,6 +185,8 @@ extern double get_temp_units(unsigned int mk, const char **units); extern double get_weight_units(unsigned int grams, int *frac, const char **units); extern double get_vertical_speed_units(unsigned int mms, int *frac, const char **units); +extern unsigned int units_to_depth(double depth); + static inline double grams_to_lbs(int grams) { return grams / 453.6; diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 7c7957e67..2078ff8a8 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -937,7 +937,7 @@ QVariant DivePlannerPointsModel::data(const QModelIndex& index, int role) const divedatapoint p = divepoints.at(index.row()); switch(index.column()) { case CCSETPOINT: return p.po2; - case DEPTH: return p.depth; + case DEPTH: return rint(get_depth_units(p.depth, NULL, NULL)); case DURATION: return p.time / 60; case GAS: return strForAir(p); } @@ -956,7 +956,7 @@ bool DivePlannerPointsModel::setData(const QModelIndex& index, const QVariant& v if(role == Qt::EditRole) { divedatapoint& p = divepoints[index.row()]; switch(index.column()) { - case DEPTH: p.depth = value.toInt(); break; + case DEPTH: p.depth = units_to_depth(value.toInt()); break; case DURATION: p.time = value.toInt() * 60; break; case CCSETPOINT:{ int po2 = 0; |