diff options
-rw-r--r-- | templatelayout.cpp | 57 | ||||
-rw-r--r-- | templatelayout.h | 23 |
2 files changed, 80 insertions, 0 deletions
diff --git a/templatelayout.cpp b/templatelayout.cpp index 1da88249b..437a6aea6 100644 --- a/templatelayout.cpp +++ b/templatelayout.cpp @@ -188,6 +188,26 @@ QString Dive::notes() const return m_notes; } +QString Dive::tags() const +{ + return m_tags; +} + +QString Dive::gas() const +{ + return m_gas; +} + +QString Dive::sac() const +{ + return m_sac; +} + +int Dive::rating() const +{ + return m_rating; +} + void Dive::put_divemaster() { if (!dive->divemaster) @@ -237,3 +257,40 @@ void Dive::put_notes() { m_notes = QString::fromUtf8(dive->notes); } + +void Dive::put_tags() +{ + char buffer[256]; + taglist_get_tagstring(dive->tag_list, buffer, 256); + m_tags = QString(buffer); +} + +void Dive::put_gas() +{ + int added = 0; + QString gas, gases; + for (int i = 0; i < MAX_CYLINDERS; i++) { + if (!is_cylinder_used(dive, i)) + continue; + gas = dive->cylinder[i].type.description; + gas += QString(!gas.isEmpty() ? " " : "") + gasname(&dive->cylinder[i].gasmix); + // if has a description and if such gas is not already present + if (!gas.isEmpty() && gases.indexOf(gas) == -1) { + if (added > 0) + gases += QString(" / "); + gases += gas; + added++; + } + } + m_gas = gases; +} + +void Dive::put_sac() +{ + if (dive->sac) { + const char *unit; + int decimal; + double value = get_volume_units(dive->sac, &decimal, &unit); + m_sac = QString::number(value, 'f', decimal).append(unit); + } +} diff --git a/templatelayout.h b/templatelayout.h index c545f5a05..1bb08d25d 100644 --- a/templatelayout.h +++ b/templatelayout.h @@ -32,6 +32,7 @@ class Dive { private: int m_number; int m_id; + int m_rating; QString m_date; QString m_time; QString m_location; @@ -42,6 +43,9 @@ private: QString m_airTemp; QString m_waterTemp; QString m_notes; + QString m_tags; + QString m_gas; + QString m_sac; struct dive *dive; void put_date_time(); void put_location(); @@ -51,6 +55,9 @@ private: void put_buddy(); void put_temp(); void put_notes(); + void put_tags(); + void put_gas(); + void put_sac(); public: Dive(struct dive *dive) @@ -58,6 +65,7 @@ public: { m_number = dive->number; m_id = dive->id; + m_rating = dive->rating; put_date_time(); put_location(); put_duration(); @@ -66,11 +74,15 @@ public: put_buddy(); put_temp(); put_notes(); + put_tags(); + put_gas(); + put_sac(); } Dive(); ~Dive(); int number() const; int id() const; + int rating() const; QString date() const; QString time() const; QString location() const; @@ -81,6 +93,9 @@ public: QString airTemp() const; QString waterTemp() const; QString notes() const; + QString tags() const; + QString gas() const; + QString sac() const; }; Q_DECLARE_METATYPE(Dive) @@ -112,6 +127,14 @@ 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(); GRANTLEE_END_LOOKUP GRANTLEE_BEGIN_LOOKUP(template_options) |