diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-02-23 20:29:18 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-04-02 13:53:23 -0700 |
commit | 4009d4c87f3a12a052f14b8a024e5b9f58140d25 (patch) | |
tree | 74d8a53103ee2df4443de140defeb214754605aa /qt-models | |
parent | 457be51ff66fb7c3396863a27f4d93de1877e3b2 (diff) | |
download | subsurface-4009d4c87f3a12a052f14b8a024e5b9f58140d25.tar.gz |
planner: remove DivePlannerPointsModel::setRecalc()
The only external user of setRecalc() was turning recalculation
on. In fact, this happened when constructing the planner-widget.
However, for example editing of the profile only works when
the recalc flag is on.
This is all very confusing, let's just turn the flag on by
default and remove the accessor. Internally, the planner can
simply use the std::exchange function to set and reset the
recalc flag.
Perhaps the setting/resetting can be replaced by simple
recalc = true;
...
recalc = false;
pairs. It is unclear whether there is need for recursion.
Something to be investigated.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/diveplannermodel.cpp | 22 | ||||
-rw-r--r-- | qt-models/diveplannermodel.h | 1 |
2 files changed, 7 insertions, 16 deletions
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp index 038783d1c..30ab063d2 100644 --- a/qt-models/diveplannermodel.cpp +++ b/qt-models/diveplannermodel.cpp @@ -221,13 +221,13 @@ bool DivePlannerPointsModel::updateMaxDepth() void DivePlannerPointsModel::removeDeco() { - bool oldrec = setRecalc(false); + bool oldrec = std::exchange(recalc, false); QVector<int> computedPoints; for (int i = 0; i < rowCount(); i++) if (!at(i).entered) computedPoints.push_back(i); removeSelectedPoints(computedPoints); - setRecalc(oldrec); + recalc = oldrec; } void DivePlannerPointsModel::addCylinder_clicked() @@ -254,13 +254,6 @@ bool DivePlannerPointsModel::isPlanner() const /* When the planner adds deco stops to the model, adding those should not trigger a new deco calculation. * We thus start the planner only when recalc is true. */ -bool DivePlannerPointsModel::setRecalc(bool rec) -{ - bool old = recalc; - recalc = rec; - return old; -} - bool DivePlannerPointsModel::recalcQ() const { return recalc; @@ -456,7 +449,7 @@ DivePlannerPointsModel::DivePlannerPointsModel(QObject *parent) : QAbstractTable d(nullptr), cylinders(true), mode(NOTHING), - recalc(false) + recalc(true) { memset(&diveplan, 0, sizeof(diveplan)); startTime.setTimeSpec(Qt::UTC); @@ -996,14 +989,14 @@ bool DivePlannerPointsModel::tankInUse(int cylinderid) const void DivePlannerPointsModel::clear() { - bool oldRecalc = setRecalc(false); + bool oldrec = std::exchange(recalc, false); beginResetModel(); divepoints.clear(); endResetModel(); cylinders.clear(); preserved_until.seconds = 0; - setRecalc(oldRecalc); + recalc = oldrec; } void DivePlannerPointsModel::createTemporaryPlan() @@ -1240,7 +1233,6 @@ finish: free(save); free(cache); free(dive); -// setRecalc(oldRecalc); } void DivePlannerPointsModel::computeVariationsDone(QString variations) @@ -1255,10 +1247,10 @@ void DivePlannerPointsModel::createPlan(bool replanCopy) { // Ok, so, here the diveplan creates a dive struct deco_state *cache = NULL; - bool oldRecalc = setRecalc(false); + bool oldrec = std::exchange(recalc, false); removeDeco(); createTemporaryPlan(); - setRecalc(oldRecalc); + recalc = oldrec; //TODO: C-based function here? struct decostop stoptable[60]; diff --git a/qt-models/diveplannermodel.h b/qt-models/diveplannermodel.h index 5a5fc0155..9b79232d6 100644 --- a/qt-models/diveplannermodel.h +++ b/qt-models/diveplannermodel.h @@ -41,7 +41,6 @@ public: bool isPlanner() const; void createSimpleDive(struct dive *d); Mode currentMode() const; - bool setRecalc(bool recalc); bool recalcQ() const; bool tankInUse(int cylinderid) const; CylindersModel *cylindersModel(); |