diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-09-02 19:16:05 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-09-03 13:35:28 -0700 |
commit | 64faa23448f1a18423b306f2b274580568853ccf (patch) | |
tree | 2568982b9ffbd1a743bd12119bb5f19bb0ef08a3 | |
parent | 9376721873f9897dcc2a451b5b8e0c56ca82f939 (diff) | |
download | subsurface-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.cpp | 1 |
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() |