Commit graph

275 commits

Author SHA1 Message Date
Miika Turkia
520f505d20 Fix Liquivision import crash
When we detect a redundant DC we free the memory reserved for the model.
Thus we need to malloc that memory here.

Fixes #1002

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-03 06:06:23 -08:00
Robert C. Helling
c32f5cc278 Silence compiler warnings
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-01 18:01:05 -08:00
Miika Turkia
448abec769 Mark CCR dive's divetype properly
We used to mark CCR dives by having "SP change" event at time 0:00.
As we nowadays mark CCR dives by setting dc->divemode appropriately,
better to convert the old dives to this format as well. This way we do
not have to take the special old format into account on multiple places
in the source.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-31 13:06:39 -08:00
Joakim Bygdell
9342dedb26 Move helper function to DiveObjectsHelper
As per Tomaz recomendation the helper functions from 19588ce and e072596
are moved from qmlmanager to DiveObjectsHelper.

[Dirk Hohndel: merged with the latest code]

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-27 11:18:44 -08:00
Dirk Hohndel
35e60a7355 QML UI: don't combine multiple trips to the same location into one
The way sectioning of the dive list works is by watching for different strings
in the section.property. In order to be able to tell different trips apart we
combine the address of the dive trip variable with the location (which will
create a new section for a new trip, even if the location text is the same) and
then strip that information out before showing the trip header.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 20:06:30 -08:00
Tomaz Canabrava
ccf29679ae Fix usage of QString
1 - Pass QStrings by const-ref
2 - Don't initialize empty strings with "", they are empty
    by default
3 - Don't compare empty strings with "", use .isEmpty()
4 - don't append or prepend " ", use QChar(' ')
5 - don't compare QStrings with "constant string", use
    QLatin1String(" constant string" )

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 09:51:14 -08:00
Tomaz Canabrava
8b7427c56d Move CloudStorage out of the widgets
Cloud Storage is a non-gui based class, we currently use
two different approaches for cloud storage, one on the desktop
target and other on the mobile target, we should use only one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 09:50:32 -08:00
Tomaz Canabrava
411f455291 Fix bug on the visibility of the Ruler Graph
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 13:04:39 -08:00
Tomaz Canabrava
2d96139566 Changed quite a few shorts to bool on the c++ implementtion
The shorts where being used on the preferences since a long
while and we cannot just simply change them to bool since this
could break the preferences files, so work around that by
changing them to booleans, since it's the correct type for a
true / false answer.

Also, move some plot curves to the new settings style

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 13:04:16 -08:00
Tomaz Canabrava
2c5fad73e8 Start to use the QSettings ObjectWrapper
start of the QSettinsg Object Wrapper usage on the code
this first patch removes two macros that generated around
200 lines in runtime for something like a quarter of it
Basically, whenever we changed anything we called the
PreferencesDialog::settingsChanged and connected everythign
to that signal, now each setting has it's own changed signal
and we can call it directly.

The best thing about this approach is that we don't trigger
repaints for things that are not directly profile related. (
actually we still do, but the plan is to remove them in due time)

this commit breaks correct atualization of the profile (because
everything was connected to PreferencesDialog::settingsChanged)
and now I need to hunt a bit for the correct connections

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 13:04:01 -08:00
Tomaz Canabrava
fd175e8781 Make it compile
This is not hoocked up on Subsurface code yet, but it's already
being compilled. now I just need to hoock things up.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:27:05 -08:00
Tomaz Canabrava
b01bca7953 Finalize the Settings
This was the hammer part of the settings, now I need to make it able to compile ;p

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:26:57 -08:00
Tomaz Canabrava
ac3ba70fdb Remove prefs already implemented.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:26:52 -08:00
Tomaz Canabrava
c3137cf07c Language Settings Wrapper
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:26:45 -08:00
Tomaz Canabrava
15fece7da2 Added Display Settings
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:26:38 -08:00
Tomaz Canabrava
e7412b11b9 Added a GeneralSettingsWrapper
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:26:35 -08:00
Anton Lundin
451293f1a0 configure OSTC/OSTC3: Add safety stop parameters
This adds the configure parameters for safety stops on the hwOS(OSTC3)
and OSTC computers.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:50:22 -08:00
Anton Lundin
91a72f45d4 configure OSTC3: Add temperature sensor offset
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:50:18 -08:00
Anton Lundin
128fc39274 Use libdivecomputer libc wrappers instead of Qt
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:50:10 -08:00
Anton Lundin
b2da9abae1 Remove unused headers
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:50:06 -08:00
Anton Lundin
e59e067042 Remove workaround for OSTC Sport 10.22 and below
Now with firmware 10.23, the settings behave as they should, and won't
hang the communication.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:50:01 -08:00
Dirk Hohndel
c2eeda44e6 Avoid precision loss on GPS fixes
It appears that the Qt documentation might be incorrect. It claims that
the precision value is digits after the decimal point, but we have seen
examples where the values posted to the server appear to have a total of 6
digits, including the digits ahead of the decimal point.

Upping this to 9 shouldn't hurt if Qt gets fixed, but should work around
the issue reported by a tester.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:41:43 -08:00
Dirk Hohndel
6faf33047e Return a value when getting SAC rate
Obvious "mass edit" error.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-21 12:41:40 -08:00
Dirk Hohndel
38c60e02c7 Fix crash with empty (or very short) dive list
In commit 37c10c8fd6 ("Add dive type to statistics window") not enough
space is reserved for the newly introduced array if the dive list as fewer
than 4 entries.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-18 11:45:25 -08:00
Miika Turkia
37c10c8fd6 Add dive type to statistics window
This adds dive type based division to the "yearly statistics" window.
Thus people can see the stats from individually from OC, CCR, PSCR and
freedive.

See #949

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-18 09:34:54 -08:00
Tomaz Canabrava
ba111ce9a3 Settings QObjectification: implement the unit settings
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:56:43 -08:00
Tomaz Canabrava
455f7bd51b Settings QObjectification: unit system
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:56:28 -08:00
Tomaz Canabrava
8e61c36ca7 Settings QObjectification: dive planner preferences
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:56:14 -08:00
Tomaz Canabrava
7b5656a08b Settings QObjectification: add PlannerSettings
We probably want to change that on the prefs struct too.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:55:51 -08:00
Tomaz Canabrava
93762249fa Settings QObjectification: cloud storage preferences
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:55:39 -08:00
Tomaz Canabrava
f5c69e3a56 Settings QObjectification: finish network preferences
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:55:18 -08:00
Tomaz Canabrava
22da63e839 Settings QObjectification: start Proxy QObject config
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:55:02 -08:00
Tomaz Canabrava
cae6960eac Settings QObjectification: some cleanups
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:54:54 -08:00
Tomaz Canabrava
ab35ee69bd Settings QObjectification: geocoding preferences
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:54:30 -08:00
Tomaz Canabrava
5c62a0aac6 Settings QObjectification: minor cleanups
Rename a few methods wrongly named and place them on the correct place on the file.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:53:59 -08:00
Tomaz Canabrava
9b37c6dfa1 Settings QObjectification: Facebook settings
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 05:53:28 -08:00
Dirk Hohndel
0dba3c4e4a Don't round up / use minimum duration for profile in Subsurface-mobile
On the desktop we have long had this vision of a minimum length and a
"pleasant" duration of the profile - but on a device this seems to look
like uneven margins. So let's just add space for the labels and not
otherwise mess with the duration.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-13 16:47:52 -08:00
Dirk Hohndel
3c8f7d72a2 Remove excessive debugging output
Now that GPS tracking seems fairly stable, let's quiet down the chatter.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 18:14:14 -08:00
Tomaz Canabrava
f767d1d489 Split PartialPressureGasSettings with TechnicalDetailsSettings
It was becomming too big, a smaller class is nicer to work wirh

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
752a03eeb1 Finish PartialPressureGasSettings
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
0cfd687799 Implement missing signals for PartialPressureGasSettings
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
e897d2c463 Implement more reader accessors for PartialPressureGasSettings
Also, the QtHelper.cpp file told me that some propertiies
where also TecDetails, graph related, so I moved them
to the correct preferences.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
525fe51f5d Implement the methods for PartialPressureGasSettings
I didn't allowed the build on CMake for those files yet because
there will be tons of breackage, so when I finish, I'll allow.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
ec01fcda5b Start the SettingsObjectWrapper - a QSettings helper for QML
This class needs to have all settings in Q_PROPERTIES
so it can be used in QML. I know we will not use all of the
settings in a visible way for the user on the QML app, but
we might increase things in the future and on different
form factors so it's good to be prepared.

Currently I implemented all of the possible properties, but
I still need to hoock up everything.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
abd05f0d21 Simplify: remove weigths and cylinders.
This finishes the first round of Simplication patches for the QML
basecode. The second one will be about the preferences.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
7a740d25a8 Simplify: return date and time directly
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
3a72699bfd Simplify: remove the gas variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
28f4e12725 Simplify: remove variable tags
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
9f4bc61f62 Simplify: remove SAC variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
04704d02c8 Simplify: remove gps variable
And also use existing helper function to get the GPS string

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
e2bc3b0e24 Simplify: remove m_notes variable
I didn't understood the logic of the define & replace,
so maybe we want a few comments there.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:47:07 -08:00
Tomaz Canabrava
6f95242ff1 Simplify: remove Maxcns and OTU variables
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:59 -08:00
Tomaz Canabrava
75561ff956 Simplify: remove suit and trip
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:20 -08:00
Tomaz Canabrava
8929d6eb1a Simplify: remove waterTemp variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:12 -08:00
Tomaz Canabrava
8e8c32d26e Simplify: removed buddy and airTemp variable
also fixed a bug on the depth

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:12 -08:00
Tomaz Canabrava
a6796d9c80 Simplify: removed divemaster
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:11 -08:00
Tomaz Canabrava
0bb661c3e1 Simplify: removed duration and depth variables
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:11 -08:00
Tomaz Canabrava
ae222f147c Simplify: removed location variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:11 -08:00
Tomaz Canabrava
8ead18a43a Simplify: removed timestamp variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:11 -08:00
Tomaz Canabrava
820cd0c28d Simplify: remove uneeded variable, rating.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:11 -08:00
Tomaz Canabrava
438b5df089 Simplify: remove uneeded variable: id
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:46:00 -08:00
Tomaz Canabrava
ed97f9f315 Simplify: QML code handling series
The connection between the C++ core and the QML code leaves a lot of room
for improvement; the following series will do small but important updates
on the code regarding QML and QtWidget coexistence and behavior.

First: simplify wrapper class, removing uneeded variable.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 15:44:10 -08:00
Dirk Hohndel
9e85d76766 GPS data: create divesite when missing for applied GPS data
Otherwise things will of course crash.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 10:02:58 -08:00
Dirk Hohndel
19e95efd6f Random whitespace cleanup
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 06:14:45 -08:00
Dirk Hohndel
3c1a111404 Fix potential compile error
This compiled just fine for me but apparently the QStringList needs to be
explicitly included on Ubuntu 15.10.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 06:09:27 -08:00
Dirk Hohndel
602d1227a7 Compile fix for older compilers
Not every compiler supports non-trivial initializers.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 22:24:30 -08:00
Dirk Hohndel
a3af5331ea Fix bug setting up DiveObjectHelper
Why would we bail there if the notes are empty?

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 21:14:51 -08:00
Dirk Hohndel
4f10f7f7ae QML UI: refresh divelist after GPS data was successfully applied
And create a helper to do so to make the code simpler.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:22 -08:00
Dirk Hohndel
956b864319 GPS data: if deleting on server fails, remember to try again
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:22 -08:00
Dirk Hohndel
4d4f5ed89b GPS data: don't try to track what's uploaded
This has been the cause of issues in several cases. We should simply always try
to push all data to the server - it deals with redundant uploads quite nicely.
(previous commits already stopped responding to this flag, this simply removes
all mention of it)

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:22 -08:00
Dirk Hohndel
69619ef5aa GPS data: delete fixes on the server
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:21 -08:00
Dirk Hohndel
88291f605c GPS data: more fixes
- load the data from settings as we start
- improve upload to server
- keep settings and in memory model in sync

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:21 -08:00
Dirk Hohndel
33142ed7f8 Reimplement the internal repesentation of GPS fixes
Instead of using the Settings as our data structure and constantly accessing
them, we now have a QMap for the GPS fixes and only access the Settings to keep
them in sync with the QMap. This should significantly speed things up.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:21 -08:00
Miika Turkia
7701975d98 Support for imperial depth on worldmap export
This will use the depth units from user preferences when exporting the
worldmap.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 14:13:58 -08:00
Robert C. Helling
82c87204e4 If all else fails try loading images from cloud server
Of course, as of this writing, there are no images on the server.

In addition, this patch adds comments to explain the by now convoluted
image retrieval logic (local file, filename as URL, by hash, cloud server).

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 14:12:36 -08:00
Robert C. Helling
3ae6326847 Simplify image hashing logic
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 14:12:23 -08:00
Salvador Cuñat
09c854fee0 Renumber dive list after manual dive merging
As Linus pointed out in mail list, user is forced to manually renumber
his dives after doing a merge, unless the merged dives were those at
the list tail.

This patch try to manage the more usual cases, letting the user to deal
with those more complex, based on some assumptions:

1.- We are working on an time ordered list of type:
      dive_table.nr           ... 100 -- 101 -- 102 -- 103 -- 104 ...
      dive_table.dives.number ... 234 -- 235 -- 236 -- 245 -- 246 ...
2.- It's unlikely to merge no consecutive dives, as merging is time
    based.
3.- It's unlikely (although possible) to find consecutive dives with
    no consecutive numbers.
4.- It would be rather bizarre to find that newer dive,of those to
    merge, has lower number than older.
5.- It can be found that one (or both) dives to merge are zero
    numbered.
6.- There is only need to renumber from merged dives in advance.

A variable, "factor", is fixed before reworking the dive table. This
number will be substracted from the original dive number.
If we are in point 5.- case, "factor" will be set to zero, meaning
that dive numbers will not change (if older dive is zero, merged one
will be numbered zero too and will let the user to manage this; if
newer dive is zero there won't be need of renumbering as following
dives will be correctly numbered, e.g. after splitting a dive which
is not at the tail of the table).

In most cases, "factor" *should* be set to 1.

While renumbering it can be found a dive with it's number set to zero,
this won't be changed and will remain zeroed to avoid negative
numbers. It, mostly, means that the user has pending work on his
dives.

I don't know why I've written such a big explanation for such a tiny
patch :-)

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 14:11:32 -08:00
Dirk Hohndel
b1f90b6aa0 QML UI: partial, slow and incomplete implementation of delete GPS fix
This only deletes the fix on the mobile device, not on the server.
And it is really really slow. Re-reading the data from the settings just isn't
a smart way to do this.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 23:18:41 -08:00
Tomaz Canabrava
25aa80846b Move Dive class from qthelper.h/cpp to it's own file
and rename it to DiveObjectHelper, since it should be an QObject
based class to make it easier on the QML, grantlee and widgets
side to display the dive's internal data.

each Q_PROPERTY defined in the DiveObjectHelper.h file
can be acessed directly via it's name.

So, if you are on a model that  returns a dive, acess it's name
by dive.name

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 08:04:44 -08:00
Tomaz Canabrava
89eed5d36e Untangle Library Linkage
with the adittion of gpslistmodel/location, the libraries
qt-models had a direct dependency on subsurface-core, and
subsurface-core had a direct dependency on qt-models, this is
bad.

Moving a bit of code around I'v managed to clean this out, and
also to clear a bit of uneeded code (GpsTracker and gpsTracker where
basically the same thing.)

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 08:04:04 -08:00
Dirk Hohndel
7b155774c5 Compile fix
This makes the desktop version compile again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 22:43:13 -08:00
Dirk Hohndel
6c0259d540 Compile fix
While the conversion of uint64_t to QVariant works fine with some Qt /
compiler combinations, it fails on others. Use Qt's type instead.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 22:41:13 -08:00
Dirk Hohndel
c62baea032 Correctly adjust time stamp of GPS fixes
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 22:08:04 -08:00
Dirk Hohndel
1eda61e115 Merge branch 'gpsList' 2016-01-07 21:43:22 -08:00
Dirk Hohndel
06dcc9ab8d Populate the model with the GPS fixes
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 21:41:52 -08:00
Dirk Hohndel
1c66e399fa Download gps locations in the mobile app
This is not the same as the existing download to apply the gps fixes to the
dive list. This allows us to download and store the GPS fixes in the settings.

I may end up changing things around to have a shared implementation for
downloading the GPS fixes, but for now this seemed easier.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 21:32:24 -08:00
Dirk Hohndel
a7f8a7574e Create GpsListModel in order to be able to display GPS fixes
This will allow us to visualize the GPS fixes that are currently stored in the
QML UI.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 21:29:05 -08:00
Salvador Cuñat
ce3a78efca Assign lower number to a merged dive instead of higher one
At the moment, if we have, say, dives ... 100, 101 and 102 and we merge 101 and
102, we get a list numbered ... 99, 100, 102. This is, probably, an
undesired behavior. The patch simple chooses lower of both dive numbers instead
of higher one.

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>
2016-01-07 18:40:20 -08:00
Dirk Hohndel
701f91e4fe Try harder to find the language name that includes country code
It seems that the first language in the list of languages isn't always the one
that specifies the country code. So try the first three to see which one is the
first to contain a country code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-05 23:41:30 -08:00
Dirk Hohndel
3bfa8de2f7 Cloud storage: fix potential crash when avoiding reloading dive list
If we loaded the dive list from cache and then try to figure out if the remote
repository had anything different, we were being super stupid if the SHA was
identical... we had already cleared the dive list by the time we decided that
we didn't need to load things. Granted, the model was still populated (oops),
but the backend data structure was cleared and accesses to it (e.g., when
drawing the profile) would cause things to crash.

The helper function duplicates some code, but trying to not duplicate the code
made things even harder to read.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-04 17:55:37 -08:00
Dirk Hohndel
14a09689a4 Location service: get the current position
If we have a fix that is fewer than 5 minutes old, take it, otherwise trigger
an update.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:18 -08:00
Dirk Hohndel
66cd83a70f Location service: support the concept of waiting for a position
There may be reasons where we want to get the position even if the criteria
aren't met.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:14 -08:00
Dirk Hohndel
a611bb22f7 Location service: restructure the way GpsSource is managed
It makes much more sense to have this as a private member of the class instead
of a static in one of the functions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:09 -08:00
Dirk Hohndel
a0aa27e864 QML UI: handle editing of depth
Getting closer to being able to really edit / add dives in the mobile UI.
This works for manually added dives - needs a bit more thought for dives
downloaded from dive computers as we don't necessarily want to change the
maxdepth in conflict with the samples.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 00:55:34 -08:00
Dirk Hohndel
c7c9fb0bb0 Git storage: be more careful when checking if this SHA is already loaded
In commit 8c1cc4524d ("Don't reload identical data") I got a little
carried away. Before comparing SHAs we need to make sure that
a) this is a git repository at all
b) we have an actual SHA before we claim to have the data loaded

Reported-by: Paul-Erik Törrönen <poltsi@777-team.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-28 08:21:03 -08:00
Stephen Hemminger
113a421228 ftdi: fix memory leak on error
Found by cppcheck. Minor memory leak if usb_reset fails

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 21:31:13 -08:00
Stephen Hemminger
7a42215067 dive: paren error in set point handling
This probably is a serious bug, found by cppcheck.
Original code had paren's in probably the wrong place!

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 21:31:13 -08:00
Dirk Hohndel
8c1cc4524d Don't reload identical data
If we already have the same SHA loaded and no changes have been made to the
dive list then there is no point in loading the dives again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
bc200c3089 Cloud storage: check the top commit without loading dives
This way we can check if the local cache is in sync with the remote without
always triggering a load of the dives from git.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
83bd46cf79 Add option to not check the remote when loading from git storage
This way we can first load from cache and then update from the network in the
background.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
7ffe7a8c8a Dive list model: add GPS string access
If the QML UI needs the GPS information, we need a way to get to it.
I'm not convinced that having it as comma separated string is the best way to
go, but that's what I need for the Google API so that's what I picked for now.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 13:33:10 -08:00
Dirk Hohndel
2882a1ef41 Remove the non-canonical Subusrface version
It no longer makes sense to lie about the version. If you are running a product
build, then the canonical version is the same version as the plain version used
to be. And in either case it makes much more sense to simply log the full
version information.

We used to have the differently styled versions for different OSs, but I don't
think this is needed anymore. Let's hope this doesn't go down as one of these
"famous last words" moments...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-20 07:59:50 -08:00
Robert C. Helling
20fa943d25 Don't complain about missing GPS source unless mobile
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-19 19:08:37 -08:00
Dirk Hohndel
7aab635585 Remove support for older libgit2 - we now require 0.23 or later
Also fixes a capitalization error that prevented finding libssh2 in some
circumstances. And adds a missing include when building with libzip on Mac.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-15 13:33:00 -08:00
Dirk Hohndel
729ac7619e Dive model: use the correct time to set the time zone offset
We need to calculate the offset based on the time of the dive - the mobile
version doesn't use displayed_dive. This way time stamps are now correct
all year round.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-08 06:20:51 -08:00
Dirk Hohndel
eb0ccace77 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:38:38 -08:00
Dirk Hohndel
956d189734 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:40:21 -08:00
Dirk Hohndel
1cb5419a57 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-03 23:14:20 -08:00
K. \"pestophagous\" Heller
445dbe73bf Crash fix in add_single_dive. No writing to dive_table.dives[-1]
Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-03 22:56:54 -08:00
K. \"pestophagous\" Heller
2778470b97 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-03 22:56:23 -08:00
Dirk Hohndel
774f45b98b Fix compile error on Mac
We need a space between the two string literals.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-03 10:42:24 -08:00
Dirk Hohndel
3499e50d0c 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-03 09:47:46 -08:00
Dirk Hohndel
75d30b8d70 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-03 09:47:09 -08:00
Dirk Hohndel
962341ae9f Add instance method for GpsLocation
This way we can call members from different parts of the code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-02 14:30:47 -08:00
Dirk Hohndel
3f72500f87 Switch to compile time connect syntax
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-01 15:34:00 -08:00
Dirk Hohndel
2311bc2378 Subsurface-mobile: don't create the GPS source until it is needed
This should accelerate the startup of the UI a little more.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-30 10:58:18 -08:00
Dirk Hohndel
0a59fd74e2 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-11-25 12:08:28 -08:00
Robert C. Helling
350f6aa2fd 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-11-24 09:20:40 -08:00
Robert C. Helling
357f6376ec Interpret - as STDOUT on writing xml files
This prepares for the smartrack converter webservice.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-24 09:20:03 -08:00
Lubomir I. Ivanov
694fc9d00f libdivecomputer.h: fix warning with DC_VERSION on Win32
"warning: "DC_VERSION" redefined" is thrown if a chain of
includes previously includes windows.h:

In file included from c:/bin/mingw/i686-w64-mingw32/include/windows.h:71:0,
    from C:/bin/qt/5.5/mingw492_32/include/QtCore/qt_windows.h:63,
    from C:/bin/qt/5.5/mingw492_32/include/QtGui/qopengl.h:43,
    from C:/bin/qt/5.5/mingw492_32/include/QtQuick/qquickwindow.h:39,
    from C:/bin/qt/5.5/mingw492_32/include/QtQuick/QQuickWindow:1,
    from C:/dev/subsurface/subsurface-core/qt-gui.h:13,
    from C:\dev\subsurface\subsurface-mobile-main.cpp:9:

and which on it's own includes wingdi.h which defines
"DC_VERSION 10" (windows printer stack related).

To solve the warning DC_VERSION is undefined in
subsurface-core/libdivecomputer.h.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 19:24:21 -08:00
Dirk Hohndel
5756ce281f applyLocations should be a void function
Another issue pointed out by Lubomir.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 19:23:19 -08:00
Lubomir I. Ivanov
ebdcc7fd54 gpslocation.cpp: fix signed vs unsinged int comparison warning
QDateTime::toTime_t() is misleading as it does not return
a C time_t type, but a 'unsigned int' or rather the Qt
'uint' typedef.

To prevent the warning we cast it to 'time_t' and to
comply with the 'lastTime' variable.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 19:21:38 -08:00
Dirk Hohndel
418a345287 Location service: when applying GPS locations mark divelist changed
Lubomir pointed out that this variable was unused. Oops.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 19:19:56 -08:00
Dirk Hohndel
ca5b751610 Location service: check presence of location source
In theory this should only report a location service if this is a
satellite based service, but sadly geoclue appears to claim that there is
a satellite based service in my Linux VM - so I'm doubtful that this does
what the documentation says it does.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 19:15:59 -08:00
Dirk Hohndel
ff5bd062f6 Location service: instantiate location provider in the desktop UI
We still aren't doing anything with it, but at least it's there now.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 18:52:44 -08:00
Dirk Hohndel
456cc3955a Location service: move into subsurface-core
While this is primarily something targeted at a mobile device, with many
of the 2 in 1 devices it is possible that the user might be running the
desktop version of Subsurface on a mobile device.

As a first step to make it possible to collect GPS fixes on such a device
we need to make the infrastructure to do so available in the desktop
application as well.

This still needs to be hooked up in the desktop UI.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 18:34:49 -08:00
Dirk Hohndel
d70f85ce35 Cloud storage: modify protocol for checking cloud connectivity
In order to allow the backend to match account in multi user mode, it
needs to know if the requests are coming from the same instance of
Subsurface. Since I had to change the backend to add the ability to
retrieve a location service userid I added this capability at the same
time.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 17:57:13 -08:00
Dirk Hohndel
d9ded26b86 Location service: set user agent string
This allows the backend to know which version of Subsurface is
contacting it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 14:44:07 -08:00
Lubomir I. Ivanov
e6c86700e4 qthelper.cpp: improve getFormattedCylinder()
When the user requests "dive.cylinders" from Grantlee HTML
we need to always put at least the default cylinder and mark
the description as "unknown" (same as other locations) if it's
not set (i.e. when the description pointer is NULL).

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 15:07:07 -08:00
Lubomir I. Ivanov
7e749e8ea4 qthelper: also support "maxcns" and "otu" in Grantlee HTML
Fixes #962

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 15:06:32 -08:00
Lubomir I. Ivanov
dd944ab33f qthelper: add means to retreive weight and cylinder info in Dive
The Dive helper class only picks the first cylinder and the total
weight. This patch adds the option to dump the cylinders and weights
as formatted lists (via cylinders() and weights()) or to retrieve
a specific cylinder or weight via (cylinder(index) and weight(index)).

Each cylinder and weight string contains detailed information:
cylinder:
- desc.
- pressure (+start/end)
- gasmix
- etc...
weight:
- desc.
- weight (in units e.g. kg)

If no description is found for a cylinder or weight the contents
for this particular unit is filled with EMPTY_DIVE_STRING ("--").

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 15:03:50 -08:00
Lubomir I. Ivanov
a34dfe8284 qthelper.cpp: define EMPTY_DIVE_STRING
The macro is used as a common replacer for the "--"
string when the Dive class members return no particular
information for a "struct dive" property.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 15:03:35 -08:00
Lubomir I. Ivanov
7de22e69b2 CMakeLists: use correct 'desktop-widgets' path
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 09:26:15 -08:00
Lubomir I. Ivanov
1efb747338 dive.c: fix a couple of comment typos
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-16 09:26:08 -08:00
Lubomir I. Ivanov
00a085f858 qthelper.cpp: support line breaks for notes when printing
The Dive::put_notes() does not handle HTML formatting or line
breaks properly. Apparently Grantlee supports HTML variables, but
the planned notes (which are HTML) look very bad when inserted in the
Grantlee template - e.g. the text is huge and the table box is cut
for some odd reason. I don't have a good solution for these issues
ATM; especially for the "table cell being cut part".

An important feature in the dive notes is to support line breaks.
This patch adds support for line breaks both in planned dive notes
and non-planned dive notes via the <br> tag. This makes the
planned dive notes look tolerable.

The next step would be to support the <br> tag, which has
to happen in the bundled templates them self.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-15 21:06:46 -08:00
Stephen Hemminger
6cb30ba1b6 simple spelling changes
Fix obvious spelling mistakes in comments (and one error message).

Yes, this is trivial but I saw one while reviewing some of the code
and after that decided to run code through some tools.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-15 12:10:37 -08:00
Lubomir I. Ivanov
84b7a37869 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-11-15 10:29:36 -08:00
Lubomir I. Ivanov
e0f4e61030 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-11-15 10:08:28 -08:00
Dirk Hohndel
3453234a3b Missing half of the previous commit
Oops. I fixed the previous commit, tested the fix, and then forgot to
update the commit and instead pushed it out. That was dumb.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-14 10:43:37 -08:00
Dirk Hohndel
97fa132202 Move proxy initialization into shared code
This way we can use the same code on desktop and mobile app.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-14 09:39:02 -08:00
Dirk Hohndel
76d0763527 Location service: make distance and time threshold configurable
Right now the distance is always in meters, the mobile app doesn't deal
with units at all, anyway.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-14 09:10:06 -08:00
Dirk Hohndel
b8c71ef6cd Remove empty implementations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 18:00:56 -08:00
Tomaz Canabrava
e1d43ade27 Removed unused files
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 18:00:56 -08:00
Tomaz Canabrava
f5f2c37184 Remove the PluginSystem
But keep the Interface so it's still userfull to create a new
SocialNetwork  when needed, but it will be part of the code,
and not a plugin.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 18:00:56 -08:00
Dirk Hohndel
e656c219a1 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-11-09 18:00:16 -08:00
Dirk Hohndel
fc1b8db17f 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-11-09 17:58:36 -08:00
Dirk Hohndel
779a70629b 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-11-09 17:57:02 -08:00
Robert C. Helling
2075038de1 Store Thumbnails with image hashes
This drastically improves the time it takes to select a dive
with several pictures at the expense of longer startup and
bigger hash files.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 10:18:10 -08:00
Tomaz Canabrava
4ddf4f6d83 Removed C++11 from the code.
Make Dirk ungrumpy

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-08 16:33:34 -08:00
Dirk Hohndel
25501ebae7 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-11-08 14:56:28 -08:00