diff options
Diffstat (limited to 'desktop-widgets/command_edit.cpp')
-rw-r--r-- | desktop-widgets/command_edit.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/desktop-widgets/command_edit.cpp b/desktop-widgets/command_edit.cpp index 73080061b..dd681e1d8 100644 --- a/desktop-widgets/command_edit.cpp +++ b/desktop-widgets/command_edit.cpp @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include "command_edit.h" +#include "command_private.h" #include "core/divelist.h" #include "core/qthelper.h" // for copy_qstring #include "desktop-widgets/mapwidget.h" // TODO: Replace desktop-dependency by signal @@ -59,7 +60,11 @@ void EditBase<T>::undo() std::swap(old, value); - emit diveListNotifier.divesEdited(QVector<dive *>::fromStdVector(dives), fieldId()); + // Send signals. + DiveField id = fieldId(); + processByTrip(dives, [&](dive_trip *trip, const QVector<dive *> &divesInTrip) { + emit diveListNotifier.divesChanged(trip, divesInTrip, id); + }); mark_divelist_changed(true); } @@ -460,7 +465,11 @@ void EditTagsBase::undo() std::swap(tagsToAdd, tagsToRemove); - emit diveListNotifier.divesEdited(QVector<dive *>::fromStdVector(dives), fieldId()); + // Send signals. + DiveField id = fieldId(); + processByTrip(dives, [&](dive_trip *trip, const QVector<dive *> &divesInTrip) { + emit diveListNotifier.divesChanged(trip, divesInTrip, id); + }); mark_divelist_changed(true); } |