Planner: start the ascend with the strongest allowed deco mix.

In analyze_gaslist() we were only keeping gases that had their .depth
above the current depth, i.e. where we could switch to in the future. Now
we take note as well of the strongest gas that we could have already
switched to and switch to it before we attempt to ascend.

[Dirk Hohndel: minor whitespace and code cleanup]

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: make sure all cylinders have a sane depth

When copying cylinders from an existing dive, the mod of the cylinder
might not be set. Assume a conservative 1.4 pO2 and fill in those data.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: after freeing the plan, throw away the pointer

Otherwise we'll happily go back and access the freed data structures
later. Oops.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: remove pointless code

This never made any sense. If we have NO datapoints then go and cancel the
plan? And anyway, we already check this higher up in the call stack.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Remove unused structure member

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: don't do unnecessary work on empty dive plans

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: remove check for empty diveplan

This was introduced in commit fc1336107930 ("Don't crash if we try to save
a empty plan") - but it doesn't seem to make any sense. It is perfectly
reasonable for the diveplan to have no datapoints at this spot - we are
just about to call createTemporaryPlan() which will fill those datapoints
from the mode.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: don't recreate the dive while cleaning up the widgets

Otherwise the change to the Cylinder widget would trigger a recreation of
the dive in an inconsistent state.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Allow editing segment duration. This shifts all following waypoints.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Merge branch 'latest'
Planner: look harder to find the right gas

Silly bug - while we normally fill the cylinders in a tight group with no
"null" cylinders in the middle, since we copy from an existing dive and
since that may end up with an odd sequence of cylinders, we need to
continue looking at ALL cylinders and not stop with the first one that's
empty.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Planner: wild guess attempt to fix a crash on Mac

Staring at the stack trace it seems that it gets into an infinite
recursion when trying to recalculate after being alerted to a change on
the ruler. I cannot recreate this here (not on Linux, not on Mac), but
here's a random attempt to prevent the issue: simply refuse to recalculate
the ruler while in Add or Plan mode.

Crude, but might show us if this really is the issue. Otherwise it's easy
enough to revert this change. The qDebug() in there should tell us if
people on a Mac do indeed see this even without moving the ruler around in
Add or Plan mode.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>