summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/command_private.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-06-23 09:22:26 +0200
committerGravatar bstoeger <32835590+bstoeger@users.noreply.github.com>2019-06-23 20:08:46 +0200
commit27944a52b1c2a1c68ccfe88c4a84d3f74fb8b512 (patch)
tree160fef9677e5cc2e907d4c32448553f74df4d2db /desktop-widgets/command_private.cpp
parentcbcddaa396f6668fef7750eb2721bc70ca11d0e4 (diff)
downloadsubsurface-27944a52b1c2a1c68ccfe88c4a84d3f74fb8b512.tar.gz
Undo: don't send signals batched by trip
Since the default view is batched by trips, signals were sent trip-wise. This seemed like a good idea at first, but when more and more parts used these signals, it became a burden. Therefore push the batching to the part of the code where it is needed: the trip view. The divesAdded and divesDeleted are not yet converted, because these are combined with trip addition/deletion. This should also be detangled, but not now. Since the dive-lists were sorted in the processByTrip function, the dive-list model now does its own sorting. This will have to be audited. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/command_private.cpp')
-rw-r--r--desktop-widgets/command_private.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/desktop-widgets/command_private.cpp b/desktop-widgets/command_private.cpp
index 05947cac1..7e604dfc9 100644
--- a/desktop-widgets/command_private.cpp
+++ b/desktop-widgets/command_private.cpp
@@ -46,8 +46,8 @@ bool setSelection(const std::vector<dive *> &selection, dive *currentDive)
{
// To do so, generate vectors of dives to be selected and deselected.
// We send signals batched by trip, so keep track of trip/dive pairs.
- std::vector<std::pair<dive_trip *, dive *>> divesToSelect;
- std::vector<std::pair<dive_trip *, dive *>> divesToDeselect;
+ QVector<dive *> divesToSelect;
+ QVector<dive *> divesToDeselect;
// TODO: We might want to keep track of selected dives in a more efficient way!
int i;
@@ -73,20 +73,16 @@ bool setSelection(const std::vector<dive *> &selection, dive *currentDive)
if (newState && !d->selected) {
d->selected = true;
++amount_selected;
- divesToSelect.push_back({ d->divetrip, d });
+ divesToSelect.push_back(d);
} else if (!newState && d->selected) {
d->selected = false;
- divesToDeselect.push_back({ d->divetrip, d });
+ divesToDeselect.push_back(d);
}
}
// Send the select and deselect signals
- processByTrip(divesToSelect, [&](dive_trip *trip, const QVector<dive *> &divesInTrip) {
- emit diveListNotifier.divesSelected(trip, divesInTrip);
- });
- processByTrip(divesToDeselect, [&](dive_trip *trip, const QVector<dive *> &divesInTrip) {
- emit diveListNotifier.divesDeselected(trip, divesInTrip);
- });
+ emit diveListNotifier.divesSelected(divesToSelect);
+ emit diveListNotifier.divesDeselected(divesToDeselect);
bool currentDiveChanged = false;
if (!currentDive) {