selection: trickle down trip selection

The trip selection code was an awkward layering violation.
Whereas dive selections due to dive undo-commands trickled
down via DiveTripModel-->MultiFilterSortModel-->DiveListView,
for trip editing, the DiveListView directly intercepted the
TripEdited signal.

Instead, mimic the dive-selection code. This is a bit longer
but more consistent and logical. The undo/redo of trip changes
is now also a "programmatical" change of the selection.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2022-08-27 17:28:34 +02:00 committed by bstoeger
parent 9ccb940a1b
commit 8581e213ed
11 changed files with 113 additions and 57 deletions

View file

@ -7,6 +7,7 @@
namespace Command {
EditTripBase::EditTripBase(dive_trip *tripIn, const QString &newValue) : trip(tripIn),
current(current_dive),
value(newValue)
{
}
@ -26,6 +27,7 @@ void EditTripBase::undo()
value = old;
emit diveListNotifier.tripChanged(trip, fieldId());
setTripSelection(trip, current);
}
// Undo and redo do the same as just the stored value is exchanged