diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-12-23 16:30:19 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-01-09 20:58:04 -0800 |
commit | 0dfc59f38cf3d75d9c86af51d17bb578b8655f7b (patch) | |
tree | 9a85f8a49856b4f720b7a0bafddd0a00878e1232 /core/divelist.c | |
parent | 1593f2ebad25244fefabe606b32ee505d4d6087d (diff) | |
download | subsurface-0dfc59f38cf3d75d9c86af51d17bb578b8655f7b.tar.gz |
Import: add merge_all_trips parameter to process_imported_dives()
When importing log-files we generally want to merge trips. But
when downloading and the user chose "generate new trip", that
new trip should not be merged into existing trips.
Therefore, add a "merge_all_trips" parameter to process_imported_dives().
If false only autogenerated trips [via autogroup] will be merged.
In the future we might want to let the user choose if trips
should be merged when importing log-files.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/divelist.c')
-rw-r--r-- | core/divelist.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/divelist.c b/core/divelist.c index 84694da60..f691cd7f1 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -1655,11 +1655,16 @@ static bool add_trip_to_table(struct dive_trip *trip, struct dive_table *dives_f * If downloaded is true, only the divecomputer of the first dive * will be considered, as it is assumed that all dives come from * the same computer. + * If merge_all_trips is true, all trips are merged. This is used + * when merging log files. If it is false, only autogenerated trips + * are merged. This is used for download-from-dc. There, if the user + * explicitly asked for a new trip, we don't want to merge into old + * trips. * Note: the dives in import_table and the trips in import_trip_table * are consumed. On return both tables have size 0. */ void process_imported_dives(struct dive_table *import_table, struct trip_table *import_trip_table, - bool prefer_imported, bool downloaded) + bool prefer_imported, bool downloaded, bool merge_all_trips) { int i, j; struct dive_trip *trip_import, *trip_old; @@ -1695,6 +1700,8 @@ void process_imported_dives(struct dive_table *import_table, struct trip_table * */ for (i = 0; i < import_trip_table->nr; i++) { trip_import = import_trip_table->trips[i]; + if (!merge_all_trips && !trip_import->autogen) + continue; for (j = 0; j < trip_table.nr; j++) { trip_old = trip_table.trips[j]; if (trips_overlap(trip_import, trip_old)) { |