The way I was doing the old location management was very dull: everything
was tangled on the mainwindow. Now I think I've found the correct way to
create this, and thus, this code can die.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This doesn't work yet because we don't get the taxonomy from the geo
referencing services yet - but it's ready to be populated.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Hopefully we now have the UI semantics figured out.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When option is enabled, if a stop is not otherwise required, a gas switch will be delayed until a stop is reached. This option is ignored if the current gas is hypoxic.
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Add the option to only switch at required stop to the planner UI. This is not actually used yet.
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is required so they work in the test for /* do we want to skip this leg as it is devoid of anything useful? */
We were already trying to use gaschange_after (and previously gaschange), but it was duplicating an existing condition (now removed).
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Otherwise reading in the dive site uuids will break on 32bit machines (as
all values >= 0x80000000 will be truncated to LONG_MAX).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We should use this consistently throughout the code instead of manually
assembling strings and messing with memory all over the place.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The longer I stared at the existing code the less it made sense.
So instead I rewrote it in a way that seems logical to me. And added a
boatload of debugging output (which needs to be removed, of course).
I tested this against more than a hundred dives and it seemed to always
pick the right fix.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Previously gaschange_after was never being set back to false. Now it will be.
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Avoid counting the selected dives - we have that number.
But also don't return 0 because we devide by the total work for the
progress bar.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The logic for when to output a gasmix in the notes table is more
complicated than it seems at first.
- On a descent leg, the gas is the gas used for descent
- At a stop (calculated or user defined), the gas is the gas used for that
stop
- But on an ascent leg (if displayed), the gas is the gas that is ABOUT TO
BE USED
- The gas should not be repeated if it's the same gas as used on the last
row of the table
- Ascent legs should only be displayed if the display transitions option
is selected, OR if there is a gas change without a stop (the user can
now set a minimum duration for a gaschange, but zero is still allowed).
The existing code tries to track what gas is being used/switched to at
each waypoint, and whether the gas should be printed or postponed to the
next leg. It works sometimes but not always.
This patch replaces the postponed gas logic with:
- Is this an ascent leg? (determines whether the applicable gas is the
preceding or following leg, and whether the leg should be displayed at
all if the transitions option isn't selected)
- Is it an ascent with a gaschange without a stop?
- Has the gas actually changed from the last output?
- Will the next leg be at the same level and same gas (in which case merge
them)?
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Simple preferences infrastructure with default prefs, prefs and hooks for
the Qt Settings system and our preferences ui.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Simple model that list the options for GeoRef.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Just the interface changes for configuration options for geo coding.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Show the user a warning if he opens an old version of the divelog
file, the warning tries to explain some things that are different
on the new version.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This might be what the user wanted, but also might not
be it. So wait for the user to request it manually.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Correctly handles resizing of interface items by
creating the layout on the parent instead of selecting the
items and applying the layout around them.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This was creating a lot of empty spaces on the preferences
dialog and making Dirk unhappy.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The code didn't trigger the update routine after PIN verification, only if
just email/password were shown. A simple oversight. This is fixed now and
so the visibility of cloud open and cloud save options should refelect
whether verified credentials are in the preferences or not.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Most of these will likely have no big impact, but it's better not to just
ignore them as they could lead to crashes.
Uemis downloader: if lseek fails, return 0
Uemis downloader: consistently check for failure to open req.txt
Zip file handling: dup could fail
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We could end up in a situation where the hash for a picture hadn't been
recorded yet and then the lookup to make sure that we find the correct
file actually got us nothing.
Now we make sure that the picture is in the hash table before looking up
the file location and before creating the name of the blob that we store
in git.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Globe: initialize doubleClick member
ShiftTimesDialog: initialize when (not sure this could be a problem)
SetpointDialog: dc could be uninitialized or could be 0 and dereferenced
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Neither of these functions should ever be called with dc == NULL.
But it's easy to prevent the potential crash.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
If we remove a cylidner for a unique gas and that is allowable, then don't
try to copy from cylinder with index same_gas (which is still -1).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When I stare at the code enough I can convince myself that cylinderindex
will always be assigned a sane value, but on the flip side, making sure
nothing stupid happens is cheap insurance.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Free memory returned from parse_mkvi_value()
Free memory returned from printGPSCoords()
Free memory allocated in added_list and removed_list
Free memory allocated when adding suffix to dive site name
Free memory allocated in cache_deco_state()
Free memory allocated in build_filename()
Free memory allocated in get_utf8()
Free memory allocated in alloc_dive()
Free memory allocated as cache but never used
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Oops, this is bad as it will lead to a certain buffer overrun.
The other change is more cosmetic - nested open comment '/*'.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We already had code to deal with this in the Save As case, but similar
handling is needed in the Open case.
This commit also makes the regular expression handling a bit stricter and
identical between the two cases.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>