Commit graph

9397 commits

Author SHA1 Message Date
Dirk Hohndel
e1768b4771 Uemis downloader: handle yet another corner case
If we looking for dive details and are trying to guess the offset between
object_id and logfilenr, we need to treat logfilenr 0 as special - it
means we read past the end of the list of stored dives and need to walk
backwards.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 13:41:07 -08:00
Lubomir I. Ivanov
76c97f2e57 profilewidget2.cpp: hide the heartbeat graph on an empty state
Opening Subsurface for the first time with heartbeat graph visible
and then immediately doing File->New shows the logo/background in the
profile space while hiding everything except the heartbeat graph.

This patch makes sure that the graph is hidden with everything
else on an empty profile state.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 12:19:26 -08:00
Dirk Hohndel
f577967629 Only warn about different number of tanks and gases if there are tanks
Some backends support giving tank data for some, but not all models that
they support (and simply report no tanks for those models that don't
support this). The Suunto Vyper is one of the dive computers where this
happens and without this change we report angry red warnings after a
perfectly correct download.

So this changes the logic to only show that error if there actually were
tanks reported.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:42:29 -08:00
Dirk Hohndel
d6b7ea5f7f Cloud storage: do not store the actual pictures in git
Adding pictures to the repository was a big mistake on my part. It's very
easy for the git repositories to reach a gigabyte and more making sync
times (and especially "first download" times) completely unreasonable.

This doesn't solve the problem for existing repositories (as the pictures
are already there, in the git history), but at least it prevents us from
storing more pictures out there.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:37:19 -08:00
K. \"pestophagous\" Heller
e4c7c6e8eb Prevent gaschange tank icons from using garbage coords.
Tank icons were shown at incorrect spots on the profile
when the DiveEventItem object held a pointer to a struct
event even after the struct event at that address had
been freed.  When internalEvent is a pointer to freed
memory, internalEvent->time.seconds could have all kinds
of crazy values, which get used in member function
DiveEventItem::recalculatePos to place the tank at bad
x coordinates.

The DiveEventItem(s) no longer store a pointer to memory
that they do not own.  This way, no matter how the path of
execution arrives into slot recalculatePos, we never need
fear that the DiveEventItem will dereference a garbage
pointer to a struct event.

Fixes #968

Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:37:07 -08:00
Dirk Hohndel
27ea079928 Uemis downloader: ignore leading junk in the data
One user's debug log shows valid data, only not in the format we've seen
before (with the response starting with '{'). Instead he gets a repeat of
the second word in the response to processSync prepended to the expected
output. So let's skip the data until the first '{'.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:36:36 -08:00
Dirk Hohndel
3029bc872c Uemis downloader: don't leak memory
Don't just clear out the buffer pointer, free the memory, first.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:36:30 -08:00
Dirk Hohndel
16ce14a29e User manual: add missing empty line
This way the ASCIIDOC works as expected and creates the numbered list.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:35:44 -08:00
Dirk Hohndel
9c26da3e29 Don't overwrite air temperature
If we already have an air temperature set, don't overwrite it with
potentially less accurate infromation from the first sample.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:35:36 -08:00
Dirk Hohndel
ea9303ff3c Location completion matches on whole name
When typing in a partial location name, the match now considers the whole
text, not just the start of the text. So typing in "Yell" will match both
"Yellow House" and "Mellow Yellow".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:35:19 -08:00
Robert C. Helling
0a65fe500b Only close html tags if they were opened before
The runtime html table is printed only if printing
a verbatim diveplan is disabled. So the closing tags
should be printed only in that case.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:35:07 -08:00
Wendie Fisher
965b67847f Last set of updates to the user manual in this round
Once again focus on language and readability.

Signed-off-by: Wendie Fisher <wendie@divedad.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:33:30 -08:00
Lubomir I. Ivanov
cd81f37200 subsurfacestartup.c: leave free_prefs() empty
There is a bug on OSX where free() is called on non-allocated
memory in free_prefs(). Most of the preferences are not freed
in free_prefs() while copy_string() is used on them, so let's
not free() any pointers in free_prefs() and leave them
as one-time leaks.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:31:02 -08:00
Lubomir I. Ivanov
d48a677259 planner.c: fix 'disclaimer' pointing to stack memory
In add_plan_to_notes() the 'disclaimer' is set to the temporary
buffer 'buf'. By making 'buf' static, 'disclaimer' now points to a
persistent buffer.

Bug was reported as bad characters when printing the planner
deco text.

Reported-by: Stefan Fuchs <sfuchs@gmx.de>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:30:37 -08:00
Wendie Fisher
8daf6128f6 Next batch of language updates for the user manual
Signed-off-by: Wendie Fisher <wendie@divedad.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:29:59 -08:00
Dirk Hohndel
731e964932 Statistics tab: clear min/max duration with just one dive selected
Otherwise if the user selects more than one dive, then goes back to just a
single dive, the maximum and minimum duration of the previous selected
group of dives stays visible which is clearly incorrect.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:28:06 -08:00
Dirk Hohndel
0c2df219ef Uemis downloader: more debug output
Once again compile time enabled. I guess it would be nice to turn this
into a logfile (just like we have with the libdivecomputer backends).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:27:55 -08:00
Dirk Hohndel
f29cf77b4e Uemis downloader: recover if dive info is completely missing
I user had a Uemis that had a dive log entry for a certain internal id but
no dive info for it. This appeared to be one of those dreaded dives when
the Uemis decides to start a dive at the end of a flight and then stays in
dive mode until it runs out of battery.

Anyway, if we see a number above and a number below, just give up and move
on.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:27:45 -08:00
Dirk Hohndel
31cdc9320e Uemis downloader: deal with a whole block of deleted dives
If every dive in a download block from the Uemis was deleted we kept
downloading that same block of dives. With this we remember how far we got
even if the dives ended up being deleted.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:27:36 -08:00
Dirk Hohndel
6b9d4669d1 Update Mac bundle build & sign scripts
These are mostly a convenience for me, they'd obviously have to be updated for
someone else trying to use them.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:27:04 -08:00
Dirk Hohndel
d20f0662b4 Uemis downloader: print some information on stderr in verbose mode
On the Mac the info on the download dialog isn't shown. So print it on
stderr as well when in verbose mode.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:26:37 -08:00
Dirk Hohndel
00c1405535 Don't crash if we have no WindowTitleUpdater registered
Subsurface-mobile doesn't have a window title with the name of our file
name at this point, so simply don't try to trigger the update.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:25:31 -08:00
Wendie Fisher
8a43e07408 Updates to the user manual
Small changes to the language to make it easier to read.

Signed-off-by: Wendie Fisher <wendie@divedad.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:24:32 -08:00
Lubomir I. Ivanov
d69c9e08af NSIS: add a couple of uninstaller checkboxes
Add a new dialog/page which is shown right before
the final "uninstall" click.

The dialog may contains two checkboxes - for registry
entries and for the user path. These checkboxes will not be
created if the user has not run the application yet,
as no registry keys will be available.

Selecting the user directory checkbox shows a warning message box,
that the user should make sure no important files are present there.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:22:30 -08:00
Miika Turkia
2bf84e6a5e Only include samples with data on UDDF import
According to the specification each proper sample should have depth, so
we can just ignore the empty waypoints.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:21:58 -08:00
Lubomir I. Ivanov
9a3532b0cd subsurfacestartup.c: don't double free 'default_filename'
'default_filename' is obtained from system_default_filename()
but system_default_filename() returns a static pointer
the HEAP memory of which is handled in main().

Remove the free() for 'default_filename' free_prefs()
to prevent a double free().

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:21:40 -08:00
Miika Turkia
ffc8e0a661 Grab all gas mixes only when no tank data is given
Grabbing all gas mixes was added for Xdeep default cylinders, and it is
not required for other data sources that have tankdata info in the UDDF
file.

See #958

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:21:16 -08:00
Linus Torvalds
3555361e44 Don't overflow cylinder array in xml parsing
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:00:55 -08:00
Miika Turkia
77e259080f Give proper error message when no dives on a zip
We import a few logs that are archived in a zip file. E.g. divelogs.de
import is a zip file named with .dld extension. In case the zip file is
empty, we should return an error message that states that fact, not
parse error. This will also end the input file parsing cleaning up
the error message on the console.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 09:00:22 -08:00
Dirk Hohndel
f6ae4fde51 Getting ready for 4.5.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-27 15:27:16 +09:00
Dirk Hohndel
5b08705f39 Pull latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-27 15:23:39 +09:00
Dirk Hohndel
3b419b3d07 Make libtool versioning happy
This way we find the versioned libdivecomputer.dll

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 15:19:05 -07:00
Dirk Hohndel
5d8f3c1ebd Cmake: fix incorrect modification of a QT_LIBRARIES
It's a list, not a string. Treating it as a string creates all kinds of
exciting weird errors that make no sense.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 14:51:07 -07:00
Dirk Hohndel
47c7958ed3 Build Windows installer with shared libdivecomputer
Since we ship it all in one piece there is no reason to use a static
libdivecomputer (like there is on Linux). This allows us to give the user
a different libdivecomputer.dll for testing when tracking down a bug.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 14:27:16 -07:00
Dirk Hohndel
c6ec742d11 Build libzip with cmake when cross building for Windows
This seems to fix our issues with being able to create zip files on the
fly (needed for the divelogs.de access).

Fixes #955

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 14:24:34 -07:00
Dirk Hohndel
755ecf607a Remove unnecessary Q_INTERFACES declaration
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-27 06:15:14 +09:00
Dirk Hohndel
aa78c5b0ec Allow building with both libzip 0.11.x and 1.0.x
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 06:51:47 -07:00
Dirk Hohndel
3b0f38f24a Fix building without BT support
I guess no one had tried this in a while.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 06:51:47 -07:00
Miika Turkia
1d10a56bdf Some error reporting on divelogs.de export
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-26 01:19:40 +09:00
Dirk Hohndel
8c706357f4 Report error received from zip_close
We may want to hide the error text in a release build and replace it with
something more user friendly but then again, the next time this fails on
us at least our users can report more than "doesn't work"...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 23:39:29 +09:00
Dirk Hohndel
3b033a85ac Divelogs.de upload: report error when unable to open upload file
Silently failing is not cool.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 14:48:25 +09:00
Dirk Hohndel
622fb4f800 List latest changes in ReleaseNotes
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 14:01:43 +09:00
Dirk Hohndel
3c8a9bc057 Move informational output to only be shown in verbose mode
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 13:57:11 +09:00
Linus Torvalds
2b1017c986 Interpolate depth for samples that have no depth
When downloading from libdivecomputer, we used to initialize the depth
of a sample to the previous depth.  However, at least for the Suunto EON
Steel, you can get sample times without any actual depth reading - the
time might be associated with some ranbdom event rather than a new depth
sample.

Rather than initialize these samples to have the same depth as the
previous one (and then perhaps getting a very sudden jump when the
*real* depth event comes in a second later), initialize the depth
samples to -1, and if that sample doesn't get a real depth, we'll create
an interpolated depth.

It is possible that we should just carry the sample around as not
actually having a depth, and instead just interpolate in the plot_info
generation, but at least right now we have a ton of code that "knows"
that every sample has a depth.  Not the least of which is our own save
format.

So generating an interpolated depth seems the path of least resistance,
and at least makes the graph look correct - no odd staircase effect from
other events that happen in between depth samples.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 13:22:59 +09:00
Dirk Hohndel
cd1884b29c Use neutral color for "no SAC information"
In commit 31d1d1f421 ("Don't change pen color when for zero SAC") Robert
continues to use the last SAC color (which certainly was better than
switching to dark green for "extremely low SAC rate"). But I think it
makes even more sense to mark it as neutral - so I picked a gray.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 13:00:58 +09:00
Dirk Hohndel
1ff309c9a1 Fix location edit UI issue on Mac
For some reason the Mac doesn't create an "activated" signal when hitting
enter/return on the drop down. So we simply manually send this and now you can
select the site with enter/return just like on Linux or Windows.

Fixes #953

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-25 12:19:18 +09:00
Miika Turkia
bf2df951e6 Divelogs.de export: split location on slash
As we join LOCATION with SITE on divelogs.de import using slash (/) as a
separator, we might as well split on last slash on export.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-24 20:17:21 +09:00
Dirk Hohndel
997123c0a4 Merge branch 'for_dirk' of https://github.com/atdotde/subsurface 2015-10-24 06:55:51 +09:00
Robert C. Helling
31d1d1f421 Don't change pen color when for zero SAC
When for individual plot entries the SAC is zero this comes
from gas changes and the SAC calculation needing a bit more
pressure data and not from the diver switching to freediving
mode. So we shold not change the pen color on the pressure
line for that but pretend we are still breathing at the
previous SAC.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2015-10-23 23:50:21 +02:00
Linus Torvalds
ae1e9b11a5 Fix the momentary SAC calculation for the profile coloring
There was tons wrong with the code.  You can't just average the SAC rate
over different plot entries, since they may not be the same duration.
And it got the beginning and end conditions wrong etc etc.

This should at least get much closer.  And it's structured to be a lot
more understandable, I hope, even if the math is a bit more involved (ie
doing the proper time-pressure integration etc).  It may still have
bugs, but at least it now gets the right coloration at the beginning of
a dive, and just eye-balling the slope vs color it seems to do the right
thing.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2015-10-23 23:50:08 +02:00