Undo: make diverse trip-related operations undo-able

AddDivesToTrip, CreateTrip, AutogroupDives, RemoveAutogenTrips
and MergeTrips basically all did the same thing as RemoveDivesFromTrip,
which was already implemented. Thus, factor our the common functionality
and hook it up to make all these functions undo-able.

Don't do the autogroup-call everytime the dive-list is rebuilt
(that would create innumberable undo-actions), but only on dive-load /
import or if expressly asked by the user [by switching the autogroup
flag].

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-09-23 21:22:48 +02:00 committed by Dirk Hohndel
parent 4fbb8ef399
commit f427226b3b
11 changed files with 296 additions and 76 deletions

View file

@ -1208,7 +1208,7 @@ static struct dive *create_new_dive(timestamp_t when)
static dive_trip_t *create_new_trip(int yyyy, int mm, int dd)
{
dive_trip_t *trip = calloc(1, sizeof(dive_trip_t));
dive_trip_t *trip = alloc_trip();
struct tm tm = { 0 };
/* We'll fill in the real data from the trip descriptor file */