summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-27 11:28:42 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-05-27 15:12:41 -0700
commit7bed6e987319e60795db049fa2b87817e1badbdf (patch)
tree6d3b8c5347767f20195b31d7c3cb299d5ba8d54d
parentd1cd1eb933418282942b5cdacd1df46b75729f44 (diff)
downloadsubsurface-7bed6e987319e60795db049fa2b87817e1badbdf.tar.gz
Planner: use the gas in the first cylinder for initial plan
As Tomaz suggested, I don't need to pass the information whether we are on the planner into the function - it's part of the DivePlannerPointsModel and therefore already knows. Also, we want to make sure we actually use the gas that's in the first cylidner of the staging dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/diveplanner.cpp19
-rw-r--r--qt-ui/diveplanner.h2
-rw-r--r--qt-ui/mainwindow.cpp2
3 files changed, 15 insertions, 8 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index f6127e5c4..c02a5b34d 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -59,14 +59,21 @@ void DivePlannerPointsModel::removeSelectedPoints(const QVector<int> &rows)
endRemoveRows();
}
-void DivePlannerPointsModel::createSimpleDive(bool planner)
+void DivePlannerPointsModel::createSimpleDive()
{
+ int o2 = O2_IN_AIR;
+ int he = 0;
+ if (isPlanner()) {
+ // let's use the gas from the first cylinder
+ o2 = stagingDive->cylinder[0].gasmix.o2.permille;
+ he = stagingDive->cylinder[0].gasmix.he.permille;
+ }
// plannerModel->addStop(0, 0, O2_IN_AIR, 0, 0);
- plannerModel->addStop(M_OR_FT(15, 45), 1 * 60, O2_IN_AIR, 0, 0, true);
- plannerModel->addStop(M_OR_FT(15, 45), 40 * 60, O2_IN_AIR, 0, 0, true);
- if (!planner) {
- plannerModel->addStop(M_OR_FT(5, 15), 42 * 60, O2_IN_AIR, 0, 0, true);
- plannerModel->addStop(M_OR_FT(5, 15), 45 * 60, O2_IN_AIR, 0, 0, true);
+ plannerModel->addStop(M_OR_FT(15, 45), 1 * 60, o2, he, 0, true);
+ plannerModel->addStop(M_OR_FT(15, 45), 40 * 60, o2, he, 0, true);
+ if (!isPlanner()) {
+ plannerModel->addStop(M_OR_FT(5, 15), 42 * 60, o2, he, 0, true);
+ plannerModel->addStop(M_OR_FT(5, 15), 45 * 60, o2, he, 0, true);
}
}
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index 781d7c741..4aa5f0094 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -39,7 +39,7 @@ public:
void removeSelectedPoints(const QVector<int> &rows);
void setPlanMode(Mode mode);
bool isPlanner();
- void createSimpleDive(bool planner = false);
+ void createSimpleDive();
void clear();
Mode currentMode() const;
bool setRecalc(bool recalc);
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 8a637ff6b..ecc04a58c 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -419,7 +419,7 @@ void MainWindow::on_actionDivePlanner_triggered()
// create a simple starting dive, using the first gas from the just copied cylidners
createFakeDiveForAddAndPlan();
- DivePlannerPointsModel::instance()->createSimpleDive(true);
+ DivePlannerPointsModel::instance()->createSimpleDive();
// reload and then disable the dive list
ui.ListWidget->reload(DiveTripModel::CURRENT);