diff options
-rw-r--r-- | core/subsurface-qt/DiveListNotifier.h | 5 | ||||
-rw-r--r-- | desktop-widgets/command_private.h | 3 |
2 files changed, 4 insertions, 4 deletions
diff --git a/core/subsurface-qt/DiveListNotifier.h b/core/subsurface-qt/DiveListNotifier.h index 06cd3f89e..b7334287e 100644 --- a/core/subsurface-qt/DiveListNotifier.h +++ b/core/subsurface-qt/DiveListNotifier.h @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 -// The DiveListNotifier emits signals when the dive-list changes (dives/trips created/deleted/moved/edited) -// Note that vectors are passed by reference, so this will only work for signals inside the UI thread! +// The DiveListNotifier emits signals when the dive-list changes (dives/trips/divesites created/deleted/moved/edited) #ifndef DIVELISTNOTIFIER_H #define DIVELISTNOTIFIER_H @@ -48,7 +47,7 @@ signals: // or the deletion spans multiple trips. But most of the time only dives of a single trip // will be affected and trips don't overlap, so these considerations are moot. // Notes: - // - The dives are always sorted by start-time. + // - The dives are always sorted by according to the dives_less_than() function of the core. // - The "trip" arguments are null for top-level-dives. void divesAdded(dive_trip *trip, bool addTrip, const QVector<dive *> &dives); void divesDeleted(dive_trip *trip, bool deleteTrip, const QVector<dive *> &dives); diff --git a/desktop-widgets/command_private.h b/desktop-widgets/command_private.h index a75ff9bba..1207e326f 100644 --- a/desktop-widgets/command_private.h +++ b/desktop-widgets/command_private.h @@ -15,6 +15,7 @@ namespace Command { // Generally, signals are sent in batches per trip. To avoid writing the same loop // again and again, this template takes a vector of trip / dive pairs, sorts it // by trip and then calls a function-object with trip and a QVector of dives in that trip. +// The dives are sorted by the dive_less_than() function defined in the core. // Input parameters: // - dives: a vector of trip,dive pairs, which will be sorted and processed in batches by trip. // - action: a function object, taking a trip-pointer and a QVector of dives, which will be called for each batch. @@ -24,7 +25,7 @@ void processByTrip(std::vector<std::pair<dive_trip *, dive *>> &dives, Function // Use std::tie for lexicographical sorting of trip, then start-time std::sort(dives.begin(), dives.end(), [](const std::pair<dive_trip *, dive *> &e1, const std::pair<dive_trip *, dive *> &e2) - { return std::tie(e1.first, e1.second->when) < std::tie(e2.first, e2.second->when); }); + { return e1.first == e2.first ? dive_less_than(e1.second, e2.second) : e1.first < e2.first; }); // Then, process the dives in batches by trip size_t i, j; // Begin and end of batch |