mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
undo: reorder cylinders on remove-cylinder undo/redo
The cylinders in the events must be reordered if we remove a cylinder. To avoid duplication of code, move the reordering function into qthelper.cpp, though it might not be ideal there. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
a37939889b
commit
5b7a316593
4 changed files with 39 additions and 9 deletions
|
@ -513,15 +513,7 @@ void CylindersModel::remove(QModelIndex index)
|
|||
changed = true;
|
||||
endRemoveRows();
|
||||
|
||||
// Create a mapping of cylinder indices:
|
||||
// 1) Fill mapping[0]..mapping[index-1] with 0..index
|
||||
// 2) Set mapping[index] to -1
|
||||
// 3) Fill mapping[index+1]..mapping[end] with index..
|
||||
std::vector<int> mapping(d->cylinders.nr + 1);
|
||||
std::iota(mapping.begin(), mapping.begin() + index.row(), 0);
|
||||
mapping[index.row()] = -1;
|
||||
std::iota(mapping.begin() + index.row() + 1, mapping.end(), index.row());
|
||||
|
||||
std::vector<int> mapping = get_cylinder_map_for_remove(d->cylinders.nr + 1, index.row());
|
||||
cylinder_renumber(d, &mapping[0]);
|
||||
if (in_planner())
|
||||
DivePlannerPointsModel::instance()->cylinderRenumber(&mapping[0]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue