From 7d42b53bba235894668ed1f2da3f5d17cd97b9c5 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Thu, 29 May 2014 23:32:38 +0200 Subject: Show the calculated deco stops in the planner table Signed-off-by: Robert C. Helling Signed-off-by: Dirk Hohndel --- qt-ui/diveplanner.cpp | 22 ++++++++++++++++++++++ qt-ui/diveplanner.h | 1 + 2 files changed, 23 insertions(+) (limited to 'qt-ui') diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 8c3d45c63..c243c1528 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -769,6 +769,27 @@ void DivePlannerPointsModel::clear() CylindersModel::instance()->clear(); } +void DivePlannerPointsModel::addDecoToModel() +{ + struct divedatapoint *dp; + + bool oldRecalc = plannerModel->setRecalc(false); + plannerModel->removeDeco(); + + unsigned int lastdepth = 0; + for (dp = diveplan.dp; dp != NULL; dp = dp->next) { + if (dp->time == 0) // magic entry for available tank + continue; + if (!dp->entered) { + if (dp->depth) { + if (dp->depth == lastdepth || dp->o2 != dp->next->o2 || dp->he != dp->next->he) + plannerModel->addStop(dp->depth, dp->time, dp->next->o2, dp->next->he, 0, false); + lastdepth = dp->depth; + } + } + } + plannerModel->setRecalc(oldRecalc); +} void DivePlannerPointsModel::createTemporaryPlan() { @@ -809,6 +830,7 @@ void DivePlannerPointsModel::createTemporaryPlan() #endif if (plannerModel->recalcQ()) { plan(&diveplan, &cache, &tempDive, stagingDive, isPlanner()); + addDecoToModel(); if (mode == ADD || mode == PLAN) { // copy the samples and events, but don't overwrite the cylinders copy_samples(tempDive, current_dive); diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index a281b7634..7cc4265bd 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -99,6 +99,7 @@ private: QVector backupSamples; // For editing added dives. struct dive *stagingDive; QVector > oldGases; + void addDecoToModel(); }; class DiveHandler : public QObject, public QGraphicsEllipseItem { -- cgit v1.2.3-70-g09d2