From e39063f6df269facaad1430229d8b330385f68ff Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Thu, 5 Mar 2020 23:10:44 +0100 Subject: undo: switch to affected dive on undo/redo of event-changes Select and make current the affected dive. And also switch to the divecomputer that was affected. Signed-off-by: Berthold Stoeger --- commands/command_event.cpp | 11 +++++++++-- commands/command_event.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'commands') diff --git a/commands/command_event.cpp b/commands/command_event.cpp index 6d217da65..2b9176af5 100644 --- a/commands/command_event.cpp +++ b/commands/command_event.cpp @@ -2,6 +2,7 @@ #include "command_event.h" #include "core/dive.h" +#include "core/selection.h" #include "core/subsurface-qt/divelistnotifier.h" #include "core/libdivecomputer.h" #include "core/gettextfromc.h" @@ -17,15 +18,21 @@ EventBase::EventBase(struct dive *dIn, int dcNrIn) : void EventBase::redo() { redoit(); // Call actual function in base class - invalidate_dive_cache(d); - emit diveListNotifier.eventsChanged(d); + updateDive(); } void EventBase::undo() { undoit(); // Call actual function in base class + updateDive(); +} + +void EventBase::updateDive() +{ invalidate_dive_cache(d); emit diveListNotifier.eventsChanged(d); + dc_number = dcNr; + setSelection({ d }, d); } AddEventBase::AddEventBase(struct dive *d, int dcNr, struct event *ev) : EventBase(d, dcNr), diff --git a/commands/command_event.h b/commands/command_event.h index 8e75dee6c..a363540d5 100644 --- a/commands/command_event.h +++ b/commands/command_event.h @@ -29,6 +29,8 @@ protected: // are probably not stable. struct dive *d; int dcNr; +private: + void updateDive(); }; class AddEventBase : public EventBase { -- cgit v1.2.3-70-g09d2