summaryrefslogtreecommitdiffstats
path: root/core/subsurface-qt/DiveListNotifier.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/subsurface-qt/DiveListNotifier.h')
-rw-r--r--core/subsurface-qt/DiveListNotifier.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/core/subsurface-qt/DiveListNotifier.h b/core/subsurface-qt/DiveListNotifier.h
index fe5ea0e22..35ecf108d 100644
--- a/core/subsurface-qt/DiveListNotifier.h
+++ b/core/subsurface-qt/DiveListNotifier.h
@@ -17,10 +17,10 @@ signals:
// Note that there are no signals for trips being added / created / time-shifted,
// because these events never happen without a dive being added / created / time-shifted.
- // We send one divesAdded, divesDeleted, divesChanged and divesTimeChanged signal per trip
- // (non-associated dives being considered part of the null trip). This is ideal for the
- // tree-view, but might be not-so-perfect for the list view, if trips intermingle or
- // the deletion spans multiple trips. But most of the time only dives of a single trip
+ // We send one divesAdded, divesDeleted, divesChanged and divesTimeChanged, divesSelected
+ // signal per trip (non-associated dives being considered part of the null trip). This is
+ // ideal for the tree-view, but might be not-so-perfect for the list view, if trips intermingle
+ // 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.
@@ -31,7 +31,16 @@ signals:
void divesMovedBetweenTrips(dive_trip *from, dive_trip *to, bool deleteFrom, bool createTo, const QVector<dive *> &dives);
void divesTimeChanged(dive_trip *trip, timestamp_t delta, const QVector<dive *> &dives);
- // This signal is sent if the selection of dives and/or the current dive changed
+ // Selection-signals come in two kinds:
+ // - divesSelected, divesDeselected and currentDiveChanged are finer grained and are
+ // called batch-wise per trip (except currentDiveChanged, of course). These signals
+ // are used by the dive-list model and view to correctly highlight the correct dives.
+ // - selectionChanged() is called once at the end of commands if either the selection
+ // or the current dive changed. It is used by the main-window / profile to update
+ // their data.
+ void divesSelected(dive_trip *trip, const QVector<dive *> &dives);
+ void divesDeselected(dive_trip *trip, const QVector<dive *> &dives);
+ void currentDiveChanged();
void selectionChanged();
public:
// Desktop uses the QTreeView class to present the list of dives. The layout