diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-03-05 23:10:44 +0100 |
---|---|---|
committer | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-04-07 00:13:35 +0200 |
commit | e39063f6df269facaad1430229d8b330385f68ff (patch) | |
tree | 15be5ecc96553310f11f6d50a6a57452e3ecaf43 /commands | |
parent | 48b4dc9c845f147d97c6f7e13582b921654a227c (diff) | |
download | subsurface-e39063f6df269facaad1430229d8b330385f68ff.tar.gz |
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 <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'commands')
-rw-r--r-- | commands/command_event.cpp | 11 | ||||
-rw-r--r-- | commands/command_event.h | 2 |
2 files changed, 11 insertions, 2 deletions
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 { |