aboutsummaryrefslogtreecommitdiffstats
path: root/commands/command_edit.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-11-30 15:51:34 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-12-03 20:55:58 -0800
commita6fa6cdb410514ba61b8886d3acadd4500c1d86e (patch)
tree017877ddaa99ce88023e2c8a07bd222ad19b00b9 /commands/command_edit.cpp
parent7c024f12d2123e08c272cefb2991623bc1da107a (diff)
downloadsubsurface-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.cpp8
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()