From e6cd4f8ae5d8b0bbc8e517b88d4ddc6045657227 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 12 Aug 2019 18:43:21 +0200 Subject: Grantlee: generate vector of cylinder data on-demand Instead of generating cylinder data in the form of CylinderObjectHelper objects for every DiveObjectHelper, generate it only if needed. DiveObjectHelper is used extensively in the mobile interface, which doesn't use the cylinder data. Let's not generate unnecessary CylinderObjectHelpers in this case! Signed-off-by: Berthold Stoeger --- core/subsurface-qt/DiveObjectHelper.cpp | 15 +++++++-------- core/subsurface-qt/DiveObjectHelper.h | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'core') diff --git a/core/subsurface-qt/DiveObjectHelper.cpp b/core/subsurface-qt/DiveObjectHelper.cpp index ec4c8d65f..0af3e432e 100644 --- a/core/subsurface-qt/DiveObjectHelper.cpp +++ b/core/subsurface-qt/DiveObjectHelper.cpp @@ -58,13 +58,6 @@ static QString getPressures(struct dive *dive, int i, enum returnPressureSelecto DiveObjectHelper::DiveObjectHelper(struct dive *d) : m_dive(d) { - if (!m_dive) - qWarning("Creating DiveObjectHelper from NULL dive"); - for (int i = 0; i < MAX_CYLINDERS; i++) { - //Don't add blank cylinders, only those that have been defined. - if (m_dive->cylinder[i].type.description) - m_cyls.append(CylinderObjectHelper(&m_dive->cylinder[i])); - } } int DiveObjectHelper::number() const @@ -311,7 +304,13 @@ QString DiveObjectHelper::cylinder(int idx) const QVector DiveObjectHelper::cylinderObjects() const { - return m_cyls; + QVector res; + for (int i = 0; i < MAX_CYLINDERS; i++) { + //Don't add blank cylinders, only those that have been defined. + if (m_dive->cylinder[i].type.description) + res.append(CylinderObjectHelper(&m_dive->cylinder[i])); // no emplace for QVector. :( + } + return res; } QString DiveObjectHelper::tripId() const diff --git a/core/subsurface-qt/DiveObjectHelper.h b/core/subsurface-qt/DiveObjectHelper.h index a090811de..49eb1d8a6 100644 --- a/core/subsurface-qt/DiveObjectHelper.h +++ b/core/subsurface-qt/DiveObjectHelper.h @@ -99,7 +99,6 @@ public: private: struct dive *m_dive; - QVector m_cyls; }; Q_DECLARE_METATYPE(DiveObjectHelper *) -- cgit v1.2.3-70-g09d2