to allow grantlee to access individual fields of the cylinder_t struct rather than a string representation of the whole cylinder info
Signed-off-by: Tim Wootton <t...@tee-jay.org.uk> --- core/CMakeLists.txt | 1 + core/subsurface-qt/DiveObjectHelper.cpp | 13 +++++++++++++ core/subsurface-qt/DiveObjectHelper.h | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index d9b1d34..5c22e23 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -86,6 +86,7 @@ set(SUBSURFACE_CORE_LIB_SRCS #Subsurface Qt have the Subsurface structs QObjectified for easy access via QML. subsurface-qt/DiveObjectHelper.cpp + subsurface-qt/CylinderObjectHelper.cpp subsurface-qt/SettingsObjectWrapper.cpp ${SERIAL_FTDI} ${PLATFORM_SRC} diff --git a/core/subsurface-qt/DiveObjectHelper.cpp b/core/subsurface-qt/DiveObjectHelper.cpp index c246a12..7da5202 100644 --- a/core/subsurface-qt/DiveObjectHelper.cpp +++ b/core/subsurface-qt/DiveObjectHelper.cpp @@ -55,10 +55,18 @@ static QString getPressures(struct dive *dive, enum returnPressureSelector ret) DiveObjectHelper::DiveObjectHelper(struct dive *d) : m_dive(d) { + m_cyls.clear(); + 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(new CylinderObjectHelper(&m_dive->cylinder[i])); + } } DiveObjectHelper::~DiveObjectHelper() { +while (!m_cyls.isEmpty()) + delete m_cyls.takeFirst(); } int DiveObjectHelper::number() const @@ -271,6 +279,11 @@ QString DiveObjectHelper::cylinder(int idx) const return getFormattedCylinder(m_dive, idx); } +QList<CylinderObjectHelper*> DiveObjectHelper::cylinderObjects() const +{ + return m_cyls; +} + QString DiveObjectHelper::trip() const { return m_dive->divetrip ? m_dive->divetrip->location : EMPTY_DIVE_STRING; diff --git a/core/subsurface-qt/DiveObjectHelper.h b/core/subsurface-qt/DiveObjectHelper.h index ab42a59..c685690 100644 --- a/core/subsurface-qt/DiveObjectHelper.h +++ b/core/subsurface-qt/DiveObjectHelper.h @@ -2,6 +2,7 @@ #define DIVE_QOBJECT_H #include "../dive.h" +#include "CylinderObjectHelper.h" #include <QObject> #include <QString> #include <QStringList> @@ -34,6 +35,7 @@ class DiveObjectHelper : public QObject { Q_PROPERTY(QString suit READ suit CONSTANT) Q_PROPERTY(QString cylinderList READ cylinderList CONSTANT) Q_PROPERTY(QStringList cylinders READ cylinders CONSTANT) + Q_PROPERTY(QList<CylinderObjectHelper*> cylinderObjects READ cylinderObjects CONSTANT) Q_PROPERTY(QString trip READ trip CONSTANT) Q_PROPERTY(QString tripMeta READ tripMeta CONSTANT) Q_PROPERTY(int maxcns READ maxcns CONSTANT) @@ -77,6 +79,7 @@ public: QString cylinderList() const; QStringList cylinders() const; QString cylinder(int idx) const; + QList<CylinderObjectHelper*> cylinderObjects() const; QString trip() const; QString tripMeta() const; int maxcns() const; @@ -92,6 +95,7 @@ public: private: struct dive *m_dive; + QList<CylinderObjectHelper*> m_cyls; }; Q_DECLARE_METATYPE(DiveObjectHelper *) -- 2.1.4 _______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface