aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2015-10-20 09:56:01 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-20 17:11:04 +0900
commit27f706064fe287f5e8b941fae57f6dcf44122b34 (patch)
tree98794514f1f0cc8684ff2e42058b4a7ee171aec3
parentd0d8c12c8cbf05334708676800f8f5dbb13aea3f (diff)
downloadsubsurface-27f706064fe287f5e8b941fae57f6dcf44122b34.tar.gz
Always make sure the planner starts with at least one cylinder
void DivePlannerPointsModel::setupCylinders() in diveplannermodel.cpp handles setting up cylinders for the planner. If there is a current dive, cylinders form that dive are copied. Otherwise the default cylinder is added and lacking that a standard size cylinder. If the current dive does not have any cylinders, we could end up without cylinders. This patch adds a test for this case and delegates to the other two sources of a cylinder in that case. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-models/diveplannermodel.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp
index b5db3f07e..6556db50b 100644
--- a/qt-models/diveplannermodel.cpp
+++ b/qt-models/diveplannermodel.cpp
@@ -115,12 +115,16 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
// setup the cylinder widget accordingly
void DivePlannerPointsModel::setupCylinders()
{
+ int i;
if (mode == PLAN && current_dive) {
// take the displayed cylinders from the selected dive as starting point
CylindersModel::instance()->copyFromDive(current_dive);
copy_cylinders(current_dive, &displayed_dive, !prefs.display_unused_tanks);
reset_cylinders(&displayed_dive, true);
- return;
+
+ for (i = 0; i < MAX_CYLINDERS; i++)
+ if (!cylinder_none(&(displayed_dive.cylinder[i])))
+ return; // We have at least one cylinder
}
if (!same_string(prefs.default_cylinder, "")) {
fill_default_cylinder(&displayed_dive.cylinder[0]);