Commit graph

9640 commits

Author SHA1 Message Date
pestophagous
4f287b6f80 Bugfix for checkboxes in DC download window GUI repaint delay.
Bug was due to incorrect use of QAbstractItemModel::index.
The arguments should be in (row, col) sequence but we were
mistakenly passing in (col, row).

Fixes #820

Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-07 08:34:37 +01:00
Tomaz Canabrava
4b3a117401 Ask the Preferences Widget to show and be visible
The 'show' call only makes the dialog visible, but if it's
covered by any other window that's not from *this* program
it could still be hidden in some OSes. the call to raise()
asks the window manager to make the widget to be on top of the
widget stack.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-07 07:57:09 +01:00
Tomaz Canabrava
d120755d15 Simplify code
Do not call the setAttributte *everytime* the Preferences
is called, call it once on the constructor.

Also, no need to call the LanguageModel::instance() on the
instance method, it will be already called on the constructor
it seems that it's a leftover from a long while.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-07 07:56:44 +01:00
Dirk Hohndel
4eb0c77d85 Avoid leaking memory
Coverity CID 1325756 and others

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 22:46:44 +01:00
Dirk Hohndel
415d3501da Avoid leaking memory
Coverity CID 1325758, 1325759, 1325760

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 22:46:43 +01:00
Miika Turkia
0db9bbdea7 Fix typo on string formatting option
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 21:22:58 +01:00
Tomaz Canabrava
786f164046 Be way more carefull when copying dive site
I don't know how I was not shot regarding on how broken the
old behavior was.

The new behavior:

1 copy the old_dive_site on top of the current_dive_site
  only if the current_dive_site was actually a new uuid,
  created by that method.

2 if the current_dive_site is an existing one but it doesn't
  have gps coords, copy only the gps coords.

This fixes existing dive sites copying notes and coordinates
from the old_dive_site.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 21:17:03 +01:00
Tomaz Canabrava
20f8c89d64 Remove unused code
This was needed when maintab had to thinker every little aspect
of the dive site selection, which has not been necessary for quite
a while.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 21:15:51 +01:00
Giorgio Marzano
637c3502e9 Force split dives attributes update.
Moved relevant code in a new helper function

Signed-off-by: Giorgio Marzano <marzano.giorgio@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 21:12:33 +01:00
Lubomir I. Ivanov
645bc0b46e main.cpp: manage the default filename/directory on the heap
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 16:05:15 +01:00
Lubomir I. Ivanov
e8e6fd40e8 git-access.c: use <userpath>/cloudstorage/ for the cache
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 16:05:01 +01:00
Lubomir I. Ivanov
105cf3a01b qthelper.cpp: remove system_default_directory()
This function is now exposed in the <os>.c API.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 16:04:54 +01:00
Lubomir I. Ivanov
e8a868aae2 linux.c: update the default path retrieval
- added system_default_directory()
- both system_default_directory() and system_default_filename()
  now use the helper system_default_path_append()
- less safer compared to windows.c, assuming the OS is stricter on which
  environment variables exist!

[Dirk Hohndel: switched filename to be dynamically allocated to avoid
               possible buffer overflow]

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 16:04:24 +01:00
Lubomir I. Ivanov
ed98d3bc60 macos.c: update the default path retriaval
- added system_default_directory()
- both system_default_directory() and system_default_filename()
  now use the helper system_default_path_append()
- less safer compared to windows.c, assuming the OS is stricter on which
  environment variables exist!

[Dirk Hohndel: switched filename to be dynamically allocated to avoid
               possible buffer overflow]

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 16:04:10 +01:00
Lubomir I. Ivanov
6cddf1d720 windows.c: sanitize the backend for path retrieval
The old backend was less safe because, it didn't:
- support UTF-16 paths!
- use GetUserNameW()

The following changes were made:
- system_default_path_append() can be used to retrieve a path in the user
  Roaming path.
- system_default_directory() - this is equal to
  system_default_path_append(NULL)
- system_default_filename() also uses the helper
  system_default_path_append()

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 15:43:21 +01:00
Rick Walsh
cd0963c26f TestPlan: update known Subsurface runtimes
The purpose of testing against known Subsurface runtimes is to warn (when test
is run in verbose mode) if the runtime has altered. Before the next release, we
should update the known Subsurface runtimes to match current behaviour, so we
are alerted when we change something during the next release cycle.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 15:18:48 +01:00
Rick Walsh
117d13485c TestPlan: include subsurfacestartup.h
Commit 9d8b0ad introduces the copy_prefs function, and uses it to replace prefs
= default_prefs. We need to include subsurfacestartup.h for it to work in
testplan.cpp, otherwise TestPlan_build fails.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 15:16:49 +01:00
Dirk Hohndel
4e4cd280c4 Add missing XML files for TestRenumber
Oops.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 14:40:33 +01:00
Dirk Hohndel
9d8b0addf9 Correctly copy preferences
When just assigning one structure to the other we copy the string
pointers. If we then modify those strings in the copy, we happily free
the strings of the original. And then resetting the preferences equally
happily reused those strings, pointing to long since freed memory.

I think what I did now is excessive for the current use case in that it
copies a ton of strings that are unset in the default_prefs. But I figured
this is a rarely used function and I might as well do it correctly.

Also, once we implement multi user support with per user preferences we
will be copying completely populated preferences around (at least that's
my guess).

Fixes #940

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 10:19:43 +01:00
Dirk Hohndel
c75ec7a04a Detect if variables were not initialized
In print_files() it is possible that is_git_repository() actually doesn't
initialize remote and branch. Don't access them if they were not set up
correctly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 10:10:08 +01:00
Dirk Hohndel
2e6afb8e89 Correctly handle the webservice userid in preferences
Because of the way that the webservice userid can be saved both in the
preferences and in a data file it was treated differently than other
preferences settings - which prevented the reset of the preferences from
actually clearing it.

This patch makes sure that if the preferences are reset the preferences UI
reflects that. To make this work the data file loading functions can no
longer be allowed to just simply clear out the userid preference value
just in case they might load a new one.

Fixes #939

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 08:53:54 +01:00
Dirk Hohndel
e5fa424a67 Only check Windows version when building on Windows
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:23:22 +01:00
Guillaume GARDET
f07953ca00 Documentation: update french translation of user-manual
Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:03:00 +01:00
Dirk Hohndel
d567859e87 Show error messages during start up as soon as the main window is shown
When the user has setup cloud storage as their default file but didn't
store the cloud storage password an error is created but not shown until
another error happens - that's very confusing for the user.

This patch fixes that.

Fixes #938

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:30 +01:00
Dirk Hohndel
05f4f9b533 Cmake: ensure marbledata is actually copied into the build directory
This can be done regarless of whether Marble is enabled or not. No harm
done.

Fixes #937

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:30 +01:00
Dirk Hohndel
5861da0bce Remove unused part of the geocoding preferences
And always turn on geocoding. The user needs to trigger this manually
anyway, so there's no point in having the extra option in the preferences.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:30 +01:00
Tomaz Canabrava
44762c4252 Do not use White font on newer Windows versions
It isn't readable with the very light background.
Which Windows versions this should be used on is a guess right now.
So far Windows 7 or newer, but that may need adjustment.

Fixes #935

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:30 +01:00
Tomaz Canabrava
437469e8ff Do not incorrectly use the UUID as the dive name
for some reason sometimes activating the dive via tab
or enter gave us the wrong column, so simply select the
right one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:30 +01:00
Dirk Hohndel
3c2965b151 Return the correct paths when is_git_repository() is called as dry_run
Otherwise we are creating the local git cache path with the remote
variable being uninitialized - which can cause crashes.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:29 +01:00
Dirk Hohndel
c50fc04a82 Reset some more values in split_dive_at()
Otherwise fixup_dive() won't update them.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:29 +01:00
Giorgio Marzano
c6eb747d0d Fix wrong max depth value in split dives
Signed-off-by: Giorgio Marzano <marzano.giorgio@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:29 +01:00
Dirk Hohndel
c378df81ab Mark divelist as changed even if imported dives got merged
The number of dives didn't go up, but we have one (or more) additional
dive computers added to an existing dive.

Fixes #936

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-06 00:01:09 +01:00
Dirk Hohndel
cb112f9ac5 Add test for import, merge and renumbering
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-05 16:35:09 +01:00
Dirk Hohndel
f0a176149a Don't use the numerus version of tr()
It looks like our tools create a .ts stance that transifex can't deal
with.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-05 16:35:09 +01:00
Dirk Hohndel
021af81443 With no filename set pick reasonable directory for Save as
If the user has no default filename set and starts Subsurface without a
filename, the directory that is opened with Save as ends up being the
current working directory of the executable, which might be its
installation directory - which in general is not a good place to save data
files to.

With this change we pick the directory which is usually used for the
default file, which should give us reasonable places on all OSs.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-05 16:35:08 +01:00
Salvador Cuñat
1719a7f59e Update spanish translation of user manual to english b74809b
Changes to Bluetooth download section.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 19:03:44 +01:00
Dirk Hohndel
ae8d6341ae Updated texts and translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 16:42:27 +01:00
Anton Lundin
331a340780 Correct sign on Divesoft Freedom timestamps
I managed somehow to miss-read and by accident told Linus that the
timestamp was signed.

It is a unsigned uint32_t, so this corrects the mistake i tricked Linus
into making.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 16:29:35 +01:00
Sander Kleijwegt
a02ea68582 HTML Export: Ignore case when searching for tags
Fixes #934

Signed-off-by: Sander Kleijwegt <sander@myowndomain.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 16:29:32 +01:00
Robert C. Helling
a241393e7b Print paths to internal files in verbose mode
When run with -v option, this prints local file names like the path
to the local git repository and the hash file.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 16:29:31 +01:00
Dirk Hohndel
3f900885df Adjust expected output for TestParse
With commit b26e516e2a ("Dive_sites-Notes shouldn't be stored as
attribute") our output format changed slightly. Adjust the expected output
to match that change to ensure that TestParse passes again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 13:53:29 +01:00
Dirk Hohndel
a4a4276ed6 Make TestGitStorage run last
This can take a long time on slow connections so it makes sense to run all
the other tests first.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 13:52:31 +01:00
Rick Walsh
936bd52a42 VPM-B: Adjust Subsurface conservatism
Reverting commit 3d8e5b638a makes the CVA
calculation marginally less conservative, and one of the tests fails as a
result.  This tiny adjustment to the conservatism fixes that.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 13:45:37 +01:00
Rick Walsh
26cab60518 Revert "VPM-B restore deco state before calculating next gradient"
This reverts commit 3d8e5b638a.

Calculating the next gradient should be based on the tissue loading at the end
of the previous iteration, so it was wrong to restore the deco state first.
This has a tiny affect on the calculated profile, and makes one of the tests
fail.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 13:45:32 +01:00
Salvador Cuñat
b26e516e2a Dive_sites-Notes shouldn't be stored as attribute
If so, some formatting chars (like "\n") will be dropped while parsing.
This could be pretty annoying for a user who tries to keep notes other
than a simple text, e.g. if the site is a wreck, may be interesting to
have some data shown like:
			...
		Max. Depth =  60 m
		Min. Depth =  40 m
		Prow: bla, bla, bla.
		Stern: bla, bla, bla.
			...
instead of a single text line.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
ACKed-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 12:35:51 +01:00
Dirk Hohndel
bdaa4eb8b0 Update README and ReleaseNotes for Beta 3
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 12:34:17 +01:00
Dirk Hohndel
a39038a902 In free dive mode split dives with only a 10 second surface interval
If the dive computer tells us that this was free diving we should be a lot
more aggressive splitting dives. For scuba dives a minute seems more
reasonable (to avoid splitting dives when you pop to the surface to get
the bearing and continue the dive after a few second).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 12:13:10 +01:00
Dirk Hohndel
76b31aa76a Don't use the same variable name for loop and temp storage
Oops. Moving the check to the beginning of the function in order to avoid
partial execution in commit 69036a1bb7 ("Avoid resource leak by bailing
early") had a nasty side effect. Since Linus used 'i' both to hold the
dive number and as a loop variable, by moving this to the top of the
function the dive nr was overwritten which caused all kinds of problems.

My bad - but of course you shouldn't mix loop variables with meaningful
variables, either...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-04 12:05:28 +01:00
Linus Torvalds
769365b4db Clean up Divesoft Freedome time parsing
So Anton Lundin says that the 32-bit timestamp for the Divesoft Freedom
is indeed a signed offset from Jan 1, 2000.

This does that, but also extracts the whole thing into a helper function
and makes sure that there are no overflows at any point by using
"timestamp_t" in the whole series, and all the operations are "obviously
safe" in their types (ie no "unsigned char gets widened to 'int' and
then we shift it left by 24 bits").

Signed-off-by: Linus Torvalds <torvalds@linux-fundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-03 10:41:03 -04:00
Dirk Hohndel
08db242e0e Avoid ignoring file read errors
This fixes a bunch of Coverity warnings.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-03 10:02:55 -04:00