diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-11-30 15:51:34 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-12-03 20:55:58 -0800 |
commit | a6fa6cdb410514ba61b8886d3acadd4500c1d86e (patch) | |
tree | 017877ddaa99ce88023e2c8a07bd222ad19b00b9 /commands/command_edit.cpp | |
parent | 7c024f12d2123e08c272cefb2991623bc1da107a (diff) | |
download | subsurface-a6fa6cdb410514ba61b8886d3acadd4500c1d86e.tar.gz |
Undo: make profile-editing undoable
Recently, undo of dive-replanning was introduced. Therefore,
it appears logical to do the same thing for editing of the
profile of manually added dives.
For now, use the same undo-command, just change the displayed
text from "replan dive" to "edit profile". Move the fixup dive
call into the undo-command.
Eventually, every action on the profile should be made undoable.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'commands/command_edit.cpp')
-rw-r--r-- | commands/command_edit.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/commands/command_edit.cpp b/commands/command_edit.cpp index 215f57899..7f4726a6b 100644 --- a/commands/command_edit.cpp +++ b/commands/command_edit.cpp @@ -887,7 +887,7 @@ void PasteDives::redo() } // ***** Paste ***** -ReplanDive::ReplanDive(dive *source) : d(current_dive), +ReplanDive::ReplanDive(dive *source, bool edit_profile) : d(current_dive), dc({ 0 }), notes(nullptr) { @@ -895,6 +895,10 @@ ReplanDive::ReplanDive(dive *source) : d(current_dive), if (!d) return; + // Fix source. Things might be inconsistent after modifying the profile. + source->maxdepth.mm = source->dc.maxdepth.mm = 0; + fixup_dive(source); + when = source->when; maxdepth = source->maxdepth; meandepth = source->meandepth; @@ -907,7 +911,7 @@ ReplanDive::ReplanDive(dive *source) : d(current_dive), std::swap(source->cylinders, cylinders); std::swap(source->dc, dc); - setText(tr("Replan dive")); + setText(edit_profile ? tr("Replan dive") : tr("Edit profile")); } ReplanDive::~ReplanDive() |