Add 'Save As' entry to context menu shown when right clicking on a dive

Something which is nice especially when asked on the list to share an
interesting dive is the possibility to save just some dives into a file.

This commit adds to the context menu shown with right-click the 'Save As'
entry. This entry allows to save selected dives.

[Dirk Hohndel: clean up white space, commit message and remove unused
               variables]

Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Pierre-Yves Chibon 2013-02-01 09:28:33 +01:00 committed by Dirk Hohndel
parent 60f9c338e9
commit 20d3b5f714
3 changed files with 56 additions and 12 deletions

View file

@ -535,6 +535,11 @@ static void save_device_info(FILE *f)
#define VERSION 2
void save_dives(const char *filename)
{
save_dives_logic(filename, FALSE);
}
void save_dives_logic(const char *filename, const gboolean select_only)
{
int i;
struct dive *dive;
@ -561,21 +566,30 @@ void save_dives(const char *filename)
/* save the dives */
for_each_dive(i, dive) {
trip = dive->divetrip;
/* Bare dive without a trip? */
if (!trip) {
if (select_only) {
if(!dive->selected)
continue;
save_dive(f, dive);
continue;
} else {
trip = dive->divetrip;
/* Bare dive without a trip? */
if (!trip) {
save_dive(f, dive);
continue;
}
/* Have we already seen this trip (and thus saved this dive?) */
if (trip->index)
continue;
/* We haven't seen this trip before - save it and all dives */
trip->index = 1;
save_trip(f, trip);
}
/* Have we already seen this trip (and thus saved this dive?) */
if (trip->index)
continue;
/* We haven't seen this trip before - save it and all dives */
trip->index = 1;
save_trip(f, trip);
}
fprintf(f, "</dives>\n</divelog>\n");
fclose(f);