aboutsummaryrefslogtreecommitdiffstats
path: root/core/string-format.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-12-14 23:21:58 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-12-17 13:03:56 -0800
commitd9942269a9b61bc35bd939b23858a7cb4a2515c3 (patch)
tree92a60687efdfbd89df1aa29d7a105487c3db16d3 /core/string-format.cpp
parentbf8261c0014253634eaddf7c0a9cf79d3a8b4123 (diff)
downloadsubsurface-d9942269a9b61bc35bd939b23858a7cb4a2515c3.tar.gz
printing: remove DiveObjectHelperGrantlee
This was a weird helper object, needed for grantlee. Instead of storing this object, loop over cylinders and dives directly. The actual accessor function is unchanged and now generates a DiveObjectHelper or DiveCylinderHelper for every variable access. Obviously, this is very inefficient. However, this will be replaced in future commits by direct calls to formatting functions. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/string-format.cpp')
-rw-r--r--core/string-format.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/string-format.cpp b/core/string-format.cpp
index 331fb64ba..3f5d7d812 100644
--- a/core/string-format.cpp
+++ b/core/string-format.cpp
@@ -143,3 +143,24 @@ QStringList formatFullCylinderList()
return cylinders;
}
+static QString formattedCylinder(const struct dive *dive, int idx)
+{
+ const cylinder_t *cyl = get_cylinder(dive, idx);
+ const char *desc = cyl->type.description;
+ QString fmt = desc ? QString(desc) : gettextFromC::tr("unknown");
+ fmt += ", " + get_volume_string(cyl->type.size, true);
+ fmt += ", " + get_pressure_string(cyl->type.workingpressure, true);
+ fmt += ", " + get_pressure_string(cyl->start, false) + " - " + get_pressure_string(cyl->end, true);
+ fmt += ", " + get_gas_string(cyl->gasmix);
+ return fmt;
+}
+
+QStringList formatCylinders(const dive *d)
+{
+ QStringList cylinders;
+ for (int i = 0; i < d->cylinders.nr; i++) {
+ QString cyl = formattedCylinder(d, i);
+ cylinders << cyl;
+ }
+ return cylinders;
+}