diff options
-rw-r--r-- | divelist.c | 13 | ||||
-rw-r--r-- | divelist.h | 2 | ||||
-rw-r--r-- | qt-ui/divelistview.cpp | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/divelist.c b/divelist.c index 0004832c6..eacf23b3d 100644 --- a/divelist.c +++ b/divelist.c @@ -615,7 +615,7 @@ void find_new_trip_start_time(dive_trip_t *trip) trip->when = when; } -void remove_dive_from_trip(struct dive *dive) +void remove_dive_from_trip(struct dive *dive, short was_autogen) { struct dive *next, **pprev; dive_trip_t *trip = dive->divetrip; @@ -631,7 +631,10 @@ void remove_dive_from_trip(struct dive *dive) next->pprev = pprev; dive->divetrip = NULL; - dive->tripflag = NO_TRIP; + if (was_autogen) + dive->tripflag = TF_NONE; + else + dive->tripflag = NO_TRIP; assert(trip->nrdives > 0); if (!--trip->nrdives) delete_trip(trip); @@ -644,7 +647,7 @@ void add_dive_to_trip(struct dive *dive, dive_trip_t *trip) if (dive->divetrip == trip) return; assert(trip->when); - remove_dive_from_trip(dive); + remove_dive_from_trip(dive, FALSE); trip->nrdives++; dive->divetrip = trip; dive->tripflag = ASSIGNED_TRIP; @@ -722,7 +725,7 @@ void delete_single_dive(int idx) struct dive *dive = get_dive(idx); if (!dive) return; /* this should never happen */ - remove_dive_from_trip(dive); + remove_dive_from_trip(dive, FALSE); if (dive->selected) deselect_dive(idx); for (i = idx; i < dive_table.nr - 1; i++) @@ -863,7 +866,7 @@ void remove_autogen_trips() dive_trip_t *trip = dive->divetrip; if (trip && trip->autogen) - remove_dive_from_trip(dive); + remove_dive_from_trip(dive, TRUE); } } diff --git a/divelist.h b/divelist.h index 109c61aef..9cac6f082 100644 --- a/divelist.h +++ b/divelist.h @@ -23,7 +23,7 @@ extern int trip_has_selected_dives(dive_trip_t *trip); extern void get_dive_gas(struct dive *dive, int *o2_p, int *he_p, int *o2low_p); extern int get_divenr(struct dive *dive); extern dive_trip_t *find_matching_trip(timestamp_t when); -extern void remove_dive_from_trip(struct dive *dive); +extern void remove_dive_from_trip(struct dive *dive, short was_autogen); extern dive_trip_t *create_and_hookup_trip_from_dive(struct dive *dive); extern void autogroup_dives(void); extern struct dive *merge_two_dives(struct dive *a, struct dive *b); diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp index ef1817fbe..2090f61a5 100644 --- a/qt-ui/divelistview.cpp +++ b/qt-ui/divelistview.cpp @@ -548,7 +548,7 @@ void DiveListView::removeFromTrip() struct dive *d; for_each_dive(i, d) { if (d->selected) - remove_dive_from_trip(d); + remove_dive_from_trip(d, FALSE); } rememberSelection(); reload(currentLayout, false); |