]> git.tdb.fi Git - ext/subsurface.git/commit
First cut of explicit trip tracking
authorDirk Hohndel <dirk@hohndel.org>
Wed, 22 Aug 2012 05:04:24 +0000 (22:04 -0700)
committerDirk Hohndel <dirk@hohndel.org>
Mon, 27 Aug 2012 21:32:24 +0000 (14:32 -0700)
commite315abf645bbca8eb3cee7d6688db8b088c14cba
tree19e7c1a2d9c4ee78c19b085a0869eb2a1f93668a
parent5726a50d89d1f76b6bc2cfb96568d41d27f2b63e
First cut of explicit trip tracking

This code establishes the explicit trip data structures and loads and
saves them in the XML data. No attempts are made to edit / modify the
trips, yet.

Loading XML files without trip data creates the trips based on timing as
before. Saving out the same, unmodified data will create 'trip' entries in
the XML file with a 'number' that reflects the number of dives in that
trip. The trip tag also stores the beginning time of the first dive in the
trip and the location of the trip (which we display in the summary entries
in the UI).

The logic allows for dives that aren't part of a dive trip. All other
dives simply belong to the "previous" dive trip - i.e. the dive trip with
the latest start time that is earlier or equal to the start time of this
dive.

This logic significantly simplifies the tracking of trips compared to
other approaches that I have tried.

The automatic grouping into trips now is an option that defaults to off
(as it makes changes to the XML file - and people who don't want this
feature shouldn't have trips added to their XML files that they then need
to manually remove).

For now you have to select this option, then exit the program and start it
again. Still to do is to trigger the trip generation at run time.

We also need a way to mark dives as not part of trips and to allow options
to combine trips, split trips, edit trip location data, etc.

The code has only had some limited testing when opening multiple files.

The code is known to fail if a location name contains unquoted special
characters like an "'".

This commit also fixes a visual inconsistency in the preferences dialog
where the font selector button didn't have a frame around it that told you
what this option was about.

Inspired-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
dive.h
divelist.c
gtk-gui.c
parse-xml.c
save-xml.c