summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/command_divelist.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-07-28 21:26:59 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-11 16:22:27 -0700
commit6ac4ddbeeda5286faacac9633b622dcf298eea7b (patch)
tree93a3e8ad8388e18866477168688a6162a469e9e0 /desktop-widgets/command_divelist.cpp
parent43c3885249fb867e7c33c8b3b5846d44e908774f (diff)
downloadsubsurface-6ac4ddbeeda5286faacac9633b622dcf298eea7b.tar.gz
Core: introduce insert_trip_dont_merge() function
insert_trip() adds a trip to the backend, but merges trips if there exists a trip with the same date. This is a disaster for the MergeTrips command, because this command adds a new trip and removes the previous two. Of course if the added trip is merged, this cannot work. Therefore, add an insert_trip_dont_merge() function, which adds the trip, but doesn't merge. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/command_divelist.cpp')
-rw-r--r--desktop-widgets/command_divelist.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/desktop-widgets/command_divelist.cpp b/desktop-widgets/command_divelist.cpp
index d12aebfc2..f0c0a82e2 100644
--- a/desktop-widgets/command_divelist.cpp
+++ b/desktop-widgets/command_divelist.cpp
@@ -34,10 +34,8 @@ static DiveToAdd removeDive(struct dive *d)
// Returns pointer to added dive (which is owned by the backend!)
static dive *addDive(DiveToAdd &d)
{
- if (d.tripToAdd) {
- dive_trip *t = d.tripToAdd.release(); // Give up ownership of trip
- insert_trip(&t); // Return ownership to backend
- }
+ if (d.tripToAdd)
+ insert_trip_dont_merge(d.tripToAdd.release()); // Return ownership to backend
if (d.trip)
add_dive_to_trip(d.dive.get(), d.trip);
dive *res = d.dive.release(); // Give up ownership of dive
@@ -124,10 +122,8 @@ static OwningTripPtr moveDiveToTrip(DiveToTrip &diveToTrip)
static void moveDivesBetweenTrips(DivesToTrip &dives)
{
// first bring back the trip(s)
- for (OwningTripPtr &trip: dives.tripsToAdd) {
- dive_trip *t = trip.release(); // Give up ownership
- insert_trip(&t); // Return ownership to backend
- }
+ for (OwningTripPtr &trip: dives.tripsToAdd)
+ insert_trip_dont_merge(trip.release()); // Return ownership to backend
dives.tripsToAdd.clear();
for (DiveToTrip &dive: dives.divesToMove) {