aboutsummaryrefslogtreecommitdiffstats
path: root/qt-models/diveplannermodel.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-02-23 20:29:18 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-04-02 13:53:23 -0700
commit4009d4c87f3a12a052f14b8a024e5b9f58140d25 (patch)
tree74d8a53103ee2df4443de140defeb214754605aa /qt-models/diveplannermodel.cpp
parent457be51ff66fb7c3396863a27f4d93de1877e3b2 (diff)
downloadsubsurface-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/diveplannermodel.cpp')
-rw-r--r--qt-models/diveplannermodel.cpp22
1 files changed, 7 insertions, 15 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];