diff options
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/diveplannermodel.cpp | 15 | ||||
-rw-r--r-- | qt-models/diveplannermodel.h | 1 |
2 files changed, 11 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() diff --git a/qt-models/diveplannermodel.h b/qt-models/diveplannermodel.h index b1f37d70d..f0ec195e6 100644 --- a/qt-models/diveplannermodel.h +++ b/qt-models/diveplannermodel.h @@ -115,6 +115,7 @@ private: explicit DivePlannerPointsModel(QObject *parent = 0); void clear(); int addStop(int millimeters, int seconds, int cylinderid_in, int ccpoint, bool entered, enum divemode_t); + void removePoints(const QVector<int> &rows); void setupStartTime(); void setupCylinders(); int lastEnteredPoint() const; |