aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-09-02 19:16:05 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-09-03 13:35:28 -0700
commit64faa23448f1a18423b306f2b274580568853ccf (patch)
tree2568982b9ffbd1a743bd12119bb5f19bb0ef08a3
parent9376721873f9897dcc2a451b5b8e0c56ca82f939 (diff)
downloadsubsurface-64faa23448f1a18423b306f2b274580568853ccf.tar.gz
undo: renumber cylinders when deleting a cylinder
Removal of a cylinder requires a renumbering of cylinders in the core data structures (samples, etc.). The renumbering was performed in the undo-action of cylinder removal, but not during actual cylinder removal. What a mess! Add the missing call. Attention: this makes the deletion of sensor-readings on cylinder-deletion non-undoable! Undo will have to be fixed in upcoming commits. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--commands/command_edit.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/commands/command_edit.cpp b/commands/command_edit.cpp
index 39b734438..c31be4e47 100644
--- a/commands/command_edit.cpp
+++ b/commands/command_edit.cpp
@@ -1177,6 +1177,7 @@ void RemoveCylinder::undo()
for (size_t i = 0; i < dives.size(); ++i) {
std::vector<int> mapping = get_cylinder_map_for_add(dives[i]->cylinders.nr, indexes[i]);
add_cylinder(&dives[i]->cylinders, indexes[i], clone_cylinder(cyl[i]));
+ cylinder_renumber(dives[i], &mapping[0]);
update_cylinder_related_info(dives[i]);
emit diveListNotifier.cylinderAdded(dives[i], indexes[i]);
invalidate_dive_cache(dives[i]); // Ensure that dive is written in git_save()