diff options
author | Robert C. Helling <helling@atdotde.de> | 2015-10-20 09:56:01 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-10-20 17:11:04 +0900 |
commit | 27f706064fe287f5e8b941fae57f6dcf44122b34 (patch) | |
tree | 98794514f1f0cc8684ff2e42058b4a7ee171aec3 /qt-models/diveplannermodel.cpp | |
parent | d0d8c12c8cbf05334708676800f8f5dbb13aea3f (diff) | |
download | subsurface-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>
Diffstat (limited to 'qt-models/diveplannermodel.cpp')
-rw-r--r-- | qt-models/diveplannermodel.cpp | 6 |
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]); |