We carefully copied the dive computers and their samples and events, but
only for the second and later DCs. For the first DC we simply copied the
pointers but not what they were pointing at. So when the copied dive was
freed, those pointers in the original went to freed memory.
Not good.
Fixes#599
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Recreational divers, especially ones diving with air, do not need to be
shown that their gas can be mixed with 0 liters of O2 and He. And
similarly Nitrox diver does not need to know about 0 liters of He.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This corrects the logic of adding a waypoint actually meaning that
a previous segment is subdivided into two. Both new segments should
by default use the gas of the old one. Since the gas is stored
in the waypoint (divedatapoint) at the end, we need to use the _next_
gas.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The semantic of fo2==fhe==0 to mean "same gasmix as before" apparently
is not used anywhere and gets in the way of the semantic "this is air".
If there is really need for mix meaning "same as before", please use another
value, e.g. one with a specific negative percentage.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Previously we were trying to get rid of the tracked gas pressures that
were added when using the plan infrastructure to create a dive. Now that
this isn't the case anymore we can stop doing that which magically makes
setting start and end pressure while adding a dive work as expected.
Fixes#582Fixes#553
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When adding a dive we don't have SAC data so we should simply have the
user manually enter their gas consumption. That still doesn't work, but
this is one required step to get it to work.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Commit 77a55db9d3 ("Use QDialogButtonBox in KMessageWidget") added a
close button to all our uses of that widget.
As much as I stare at the code I can't figure out why. For now I'll simply
brute-force disable them...
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
QDialogButtonBox can auto-choose the order of the actions based on the
current interfaces guidelines, but in this case its a guessing game.
It does a half-decent job off guessing.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Move the Save/Abort buttons in the planner to the top left and change
them to Save/Cancel to be consistent with where our Save/Cancel
buttons are in the Maintab.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Recreate the helper function (which now does something fairly different)
to share the common code between the two modes.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I had tested this mostly with add dive and completely forgot to track the
same changes in the planning routine. Oops.
This allowed to get rid of a no longer useful helper as well.
Fixes#594
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Add temperature curve to profile view, The curve is tracable by mouse.
The temperature has a hidden axis that doesn't appear in the detailed
view.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
since the practise is that the first dive is number 1.
so change the first dive number to 1 instead of 0.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Export events to detailed dive view and add events to the profile.
Events names must appear on mouse hover.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This patch updated the export section in the user manual.
Some changes to the description of the HTML export options.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Previous code where accumulating events from each iteration of the
planning. This code clears the old ones before adding new ones.
Fixes#595
[Dirk Hohndel: removed printf, updated comment, slightly moved the code,
added parenthesis to silence warning]
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Add commented out options to subsurface.pro that enable debuging the planner.
Remove obsolete comment.
Clean up the selection tracking.
Force the re-sort of the divelist inside the reload instead of explicitly
calling it.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Prior to commit 95cb4e, when a new dive was added with the same location
name as a previous dive, the GPS coordinates for that new dive would be
automatically set to that of the matching previous dive.
This restores this feature, by duplicating code further down
qt-ui/maintab.cpp that handles the case where multiple dives are
modified at once.
Signed-off-by: Gaetan Bisson <bisson@archlinux.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
If the corresponding checkbox is checked the planner does interrupt
pure O2 deco after 12min for 6min on cylinder 0.
To make this work for air I removed the gasmix_is_null logic.
I guess that makes the planner feature complete for the next release.
[Dirk Hohndel: trivial merge into latest master]
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This gets rid of the stagingDive and stops the constant adding and
removing of dives from the divelist (that was an INSANE design,
seriously).
When adding or planning a dive all work is now done in the dedicated
displayed_dive.
Add dive mostly works - when the user clicks save the dive is added to the
dive list and selected.
Plan dive is mostly untested. It passed trivial "start planner, save"
testing so it's not entirely broken, but I'm sure there's more work to be
done there.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is kind of the inverse to copy_dive(). Instead of duplicating all the
data that the dive points to, it moves it to a new struct dive and zeroes
out the old one so there are no two sets of pointers to these data.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
With this patch a simple click into the main tab does not start editing
mode. Only once a value is modified do we show the message box and disable
the other widgets.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Instead of comparing the dive structures (which doesn't work since the
strings are actually copies), track if the user made changes.
Cylinders and weights still need to be compared as they are handled in
different widgets.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Instead of passing in a divenr of -1 to make it clear things this changes
things to use an options "clear" flag.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
No longer use the dive structure that is passed in but instead always use
the displayed_dive to display things.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way we can safely copy around dives (specifically, copy the dive to
be displayed / edited into the displayed_dive).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We should not care if the dive has the same address in memory. We care if
it is the same dive (by using the unique ID).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We don't have a concept of what to do when plotting multiple dives, so
let's not pretend and remove all the messing around with lists.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
There is massive confusion about what we display when and where and which
dive structure (or pointer to a dive structure) contains which information
at which stage. This is the first step towards restructuring all of this.
This creates a global variable displayed_dive which at any point in time
should be what is displayed on screen (both in the profile and in the
maintab). It removes the editedDive concept from MainTab.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Use arrows to switch between dives in dive detailed view.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>