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>
This commit is contained in:
parent
cbee716316
commit
601861ef5e
@ -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()
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user