summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/templatelayout.h83
1 files changed, 49 insertions, 34 deletions
diff --git a/desktop-widgets/templatelayout.h b/desktop-widgets/templatelayout.h
index faedac778..d8328534a 100644
--- a/desktop-widgets/templatelayout.h
+++ b/desktop-widgets/templatelayout.h
@@ -49,43 +49,58 @@ Q_DECLARE_METATYPE(template_options)
Q_DECLARE_METATYPE(print_options)
Q_DECLARE_METATYPE(YearInfo)
+#define _CONC_STR(prop, idx) _CONC_STR1(prop, idx)
+#define _CONC_STR1(prop, idx) _CONC_STR2(prop ## idx)
+#define _CONC_STR2(prop) #prop
+
+#define _RETURN_DIVE_PROPERTY(prop) \
+ if (property == #prop) return object.prop()
+
+#define _RETURN_DIVE_PROPERTY_IDX(prop, idx) \
+ if (property == _CONC_STR(prop, idx)) return object.prop(idx)
+
GRANTLEE_BEGIN_LOOKUP(Dive)
-if (property == "number")
- return object.number();
-else if (property == "id")
- return object.id();
-else if (property == "date")
- return object.date();
-else if (property == "time")
- return object.time();
-else if (property == "location")
- return object.location();
-else if (property == "duration")
- return object.duration();
-else if (property == "depth")
- return object.depth();
-else if (property == "divemaster")
- return object.divemaster();
-else if (property == "buddy")
- return object.buddy();
-else if (property == "airTemp")
- return object.airTemp();
-else if (property == "waterTemp")
- return object.waterTemp();
-else if (property == "notes")
- return object.notes();
-else if (property == "rating")
- return object.rating();
-else if (property == "sac")
- return object.sac();
-else if (property == "tags")
- return object.tags();
-else if (property == "gas")
- return object.gas();
-else if (property == "suit")
- return object.suit();
+_RETURN_DIVE_PROPERTY(number);
+else _RETURN_DIVE_PROPERTY(id);
+else _RETURN_DIVE_PROPERTY(date);
+else _RETURN_DIVE_PROPERTY(time);
+else _RETURN_DIVE_PROPERTY(location);
+else _RETURN_DIVE_PROPERTY(duration);
+else _RETURN_DIVE_PROPERTY(depth);
+else _RETURN_DIVE_PROPERTY(buddy);
+else _RETURN_DIVE_PROPERTY(divemaster);
+else _RETURN_DIVE_PROPERTY(airTemp);
+else _RETURN_DIVE_PROPERTY(waterTemp);
+else _RETURN_DIVE_PROPERTY(notes);
+else _RETURN_DIVE_PROPERTY(rating);
+else _RETURN_DIVE_PROPERTY(sac);
+else _RETURN_DIVE_PROPERTY(tags);
+else _RETURN_DIVE_PROPERTY(gas);
+else _RETURN_DIVE_PROPERTY(suit);
+else _RETURN_DIVE_PROPERTY(cylinders);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 0);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 1);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 2);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 3);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 4);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 5);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 6);
+else _RETURN_DIVE_PROPERTY_IDX(cylinder, 7);
+else _RETURN_DIVE_PROPERTY(weights);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 0);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 1);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 2);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 3);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 4);
+else _RETURN_DIVE_PROPERTY_IDX(weight, 5);
GRANTLEE_END_LOOKUP
+#undef _RETURN_DIVE_PROPERTY
+#undef _RETURN_DIVE_PROPERTY_IDX
+#undef _CONC_STR
+#undef _CONC_STR1
+#undef _CONC_STR2
+
GRANTLEE_BEGIN_LOOKUP(template_options)
if (property == "font") {
switch (object.font_index) {