summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/subsurface-qt/DiveObjectHelper.cpp11
-rw-r--r--core/subsurface-qt/DiveObjectHelper.h19
-rw-r--r--desktop-widgets/templatelayout.cpp10
-rw-r--r--desktop-widgets/templatelayout.h2
4 files changed, 32 insertions, 10 deletions
diff --git a/core/subsurface-qt/DiveObjectHelper.cpp b/core/subsurface-qt/DiveObjectHelper.cpp
index ec62a9fec..9e4ff47bb 100644
--- a/core/subsurface-qt/DiveObjectHelper.cpp
+++ b/core/subsurface-qt/DiveObjectHelper.cpp
@@ -238,7 +238,6 @@ DiveObjectHelper::DiveObjectHelper(const struct dive *d) :
singleWeight(d->weightsystems.nr <= 1),
suit(d->suit ? d->suit : QString()),
cylinders(formatCylinders(d)),
- cylinderObjects(makeCylinderObjects(d)),
maxcns(d->maxcns),
otu(d->otu),
sumWeight(get_weight_string(weight_t { total_weight(d) }, true)),
@@ -249,6 +248,16 @@ DiveObjectHelper::DiveObjectHelper(const struct dive *d) :
{
}
+DiveObjectHelperGrantlee::DiveObjectHelperGrantlee()
+{
+}
+
+DiveObjectHelperGrantlee::DiveObjectHelperGrantlee(const struct dive *d) :
+ DiveObjectHelper(d),
+ cylinderObjects(makeCylinderObjects(d))
+{
+}
+
QString DiveObjectHelper::date() const
{
QDateTime localTime = QDateTime::fromMSecsSinceEpoch(1000 * timestamp, Qt::UTC);
diff --git a/core/subsurface-qt/DiveObjectHelper.h b/core/subsurface-qt/DiveObjectHelper.h
index 5e6b0c7e1..639dae696 100644
--- a/core/subsurface-qt/DiveObjectHelper.h
+++ b/core/subsurface-qt/DiveObjectHelper.h
@@ -39,7 +39,6 @@ class DiveObjectHelper {
Q_PROPERTY(QString suit MEMBER suit CONSTANT)
Q_PROPERTY(QStringList cylinderList READ cylinderList CONSTANT)
Q_PROPERTY(QStringList cylinders MEMBER cylinders CONSTANT)
- Q_PROPERTY(QVector<CylinderObjectHelper> cylinderObjects MEMBER cylinderObjects CONSTANT)
Q_PROPERTY(int maxcns MEMBER maxcns CONSTANT)
Q_PROPERTY(int otu MEMBER otu CONSTANT)
Q_PROPERTY(QString sumWeight MEMBER sumWeight CONSTANT)
@@ -78,7 +77,6 @@ public:
QString suit;
QStringList cylinderList() const;
QStringList cylinders;
- QVector<CylinderObjectHelper> cylinderObjects;
int maxcns;
int otu;
QString sumWeight;
@@ -87,6 +85,21 @@ public:
QStringList endPressure;
QStringList firstGas;
};
- Q_DECLARE_METATYPE(DiveObjectHelper)
+
+// This is an extended version of DiveObjectHelper that also keeps track of cylinder data.
+// It is used by grantlee to display structured cylinder data.
+// Note: this grantlee feature is undocumented. If there turns out to be no users, we might
+// want to remove this class.
+class DiveObjectHelperGrantlee : public DiveObjectHelper {
+ Q_GADGET
+ Q_PROPERTY(QVector<CylinderObjectHelper> cylinderObjects MEMBER cylinderObjects CONSTANT)
+public:
+ DiveObjectHelperGrantlee();
+ DiveObjectHelperGrantlee(const struct dive *dive);
+ QVector<CylinderObjectHelper> cylinderObjects;
+};
+
+Q_DECLARE_METATYPE(DiveObjectHelper)
+Q_DECLARE_METATYPE(DiveObjectHelperGrantlee)
#endif
diff --git a/desktop-widgets/templatelayout.cpp b/desktop-widgets/templatelayout.cpp
index bdcdfbbe9..de540f266 100644
--- a/desktop-widgets/templatelayout.cpp
+++ b/desktop-widgets/templatelayout.cpp
@@ -100,7 +100,7 @@ TemplateLayout::TemplateLayout(print_options *printOptions, template_options *te
}
/* a HTML pre-processor stage. acts like a compatibility layer
- * between some Grantlee variables and DiveObjectHelper Q_PROPERTIES:
+ * between some Grantlee variables and DiveObjectHelperGrantlee Q_PROPERTIES:
* dive.weights -> dive.weightList
* dive.weight# -> dive.weights.#
* dive.cylinders -> dive.cylinderList
@@ -134,13 +134,13 @@ QString TemplateLayout::generate()
Grantlee::registerMetaType<template_options>();
Grantlee::registerMetaType<print_options>();
Grantlee::registerMetaType<CylinderObjectHelper>(); // TODO: Remove when grantlee supports Q_GADGET
- Grantlee::registerMetaType<DiveObjectHelper>(); // TODO: Remove when grantlee supports Q_GADGET
+ Grantlee::registerMetaType<DiveObjectHelperGrantlee>(); // TODO: Remove when grantlee supports Q_GADGET
QVariantList diveList;
struct dive *dive;
if (in_planner()) {
- diveList.append(QVariant::fromValue(DiveObjectHelper(&displayed_dive)));
+ diveList.append(QVariant::fromValue(DiveObjectHelperGrantlee(&displayed_dive)));
emit progressUpdated(100.0);
} else {
int i;
@@ -148,7 +148,7 @@ QString TemplateLayout::generate()
//TODO check for exporting selected dives only
if (!dive->selected && printOptions->print_selected)
continue;
- diveList.append(QVariant::fromValue(DiveObjectHelper(dive)));
+ diveList.append(QVariant::fromValue(DiveObjectHelperGrantlee(dive)));
progress++;
emit progressUpdated(lrint(progress * 100.0 / totalWork));
}
@@ -191,7 +191,7 @@ QString TemplateLayout::generateStatistics()
Grantlee::registerMetaType<template_options>();
Grantlee::registerMetaType<print_options>();
Grantlee::registerMetaType<CylinderObjectHelper>(); // TODO: Remove when grantlee supports Q_GADGET
- Grantlee::registerMetaType<DiveObjectHelper>(); // TODO: Remove when grantlee supports Q_GADGET
+ Grantlee::registerMetaType<DiveObjectHelperGrantlee>(); // TODO: Remove when grantlee supports Q_GADGET
QVariantList years;
diff --git a/desktop-widgets/templatelayout.h b/desktop-widgets/templatelayout.h
index 870cd702a..04f7af9a5 100644
--- a/desktop-widgets/templatelayout.h
+++ b/desktop-widgets/templatelayout.h
@@ -143,7 +143,7 @@ GRANTLEE_END_LOOKUP
// TODO: This is currently needed because our grantlee version
// doesn't support Q_GADGET based classes. A patch to fix this
// exists. Remove in due course.
-GRANTLEE_BEGIN_LOOKUP(DiveObjectHelper)
+GRANTLEE_BEGIN_LOOKUP(DiveObjectHelperGrantlee)
if (property == "number") {
return object.number;
} else if (property == "id") {