summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2021-01-09 21:18:37 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2021-01-10 15:57:39 -0800
commit235146a95f5d79c54cf3b68b490c1cb0fb146b5f (patch)
tree71bd7b0ad845a52cd579302da423154bf6e4fe36 /qt-models
parent88c6ce988dfc1b5ad40eb9c425d705c8ac136570 (diff)
downloadsubsurface-235146a95f5d79c54cf3b68b490c1cb0fb146b5f.tar.gz
profile: pass dive to DiveHandler
The DiveHandler shows a context menu where a cylinder can be chosen. This indirectly accesses the global displayed_dive variable. Remove this in a step to make the profile reentrant. The code was quite ominous: instead of simply generating the list of cylinders, a global model was reset and then accessed with Qt's cumbersome model/view API. All this trampling over global state can be removed by simply making the function that generates the list globally accessible. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/models.cpp19
1 files changed, 1 insertions, 18 deletions
diff --git a/qt-models/models.cpp b/qt-models/models.cpp
index 70f95abc1..dfc917993 100644
--- a/qt-models/models.cpp
+++ b/qt-models/models.cpp
@@ -24,26 +24,9 @@ GasSelectionModel *GasSelectionModel::instance()
return &self;
}
-static QStringList getGasList()
-{
- QStringList list;
- for (int i = 0; i < displayed_dive.cylinders.nr; i++) {
- const cylinder_t *cyl = get_cylinder(&displayed_dive, i);
- /* Check if we have the same gasmix two or more times
- * If yes return more verbose string */
- int same_gas = same_gasmix_cylinder(cyl, i, &displayed_dive, true);
- if (same_gas == -1)
- list.push_back(get_gas_string(cyl->gasmix));
- else
- list.push_back(get_gas_string(cyl->gasmix) + QString(" (%1 %2 ").arg(GasSelectionModel::tr("cyl.")).arg(i + 1) +
- cyl->type.description + ")");
- }
- return list;
-}
-
void GasSelectionModel::repopulate()
{
- setStringList(getGasList());
+ setStringList(get_dive_gas_list(&displayed_dive));
}
QVariant GasSelectionModel::data(const QModelIndex &index, int role) const