diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-02-27 22:24:33 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-04-02 13:53:23 -0700 |
commit | 601861ef5e05b88b9721cde5b49d16b5b00caa50 (patch) | |
tree | a6579646d89b6bc957c57f5a0bad3137828b1aaf /qt-models/diveplannermodel.cpp | |
parent | cbee716316f90f483c272431e1fb766816532b09 (diff) | |
download | subsurface-601861ef5e05b88b9721cde5b49d16b5b00caa50.tar.gz |
planner: split DivePlannerPointsModel::removePoints() in two
Split the function in one external version, that updates the
dive profile and cylinders and one internal version, that
does no recalculations. In the latter case, the caller is
responsible for updating the dive.
Thus, the recalculation flag-clearing can be removed from
removeDeco().
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/diveplannermodel.cpp')
-rw-r--r-- | qt-models/diveplannermodel.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp index c8da6e6a7..7019472c7 100644 --- a/qt-models/diveplannermodel.cpp +++ b/qt-models/diveplannermodel.cpp @@ -28,7 +28,7 @@ CylindersModel *DivePlannerPointsModel::cylindersModel() return &cylinders; } -void DivePlannerPointsModel::removeSelectedPoints(const QVector<int> &rows) +void DivePlannerPointsModel::removePoints(const QVector<int> &rows) { if (!rows.count()) return; @@ -40,6 +40,12 @@ void DivePlannerPointsModel::removeSelectedPoints(const QVector<int> &rows) divepoints.erase(divepoints.begin() + v2[i]); endRemoveRows(); } +} + +void DivePlannerPointsModel::removeSelectedPoints(const QVector<int> &rows) +{ + removePoints(rows); + updateDiveProfile(); emitDataChanged(); cylinders.updateTrashIcon(); @@ -225,13 +231,12 @@ bool DivePlannerPointsModel::updateMaxDepth() void DivePlannerPointsModel::removeDeco() { - bool oldrec = std::exchange(recalc, false); QVector<int> computedPoints; - for (int i = 0; i < rowCount(); i++) + for (int i = 0; i < rowCount(); i++) { if (!at(i).entered) computedPoints.push_back(i); - removeSelectedPoints(computedPoints); - recalc = oldrec; + } + removePoints(computedPoints); } void DivePlannerPointsModel::addCylinder_clicked() |