diff options
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/divelistmodel.cpp | 80 | ||||
-rw-r--r-- | qt-models/divelistmodel.h | 27 |
2 files changed, 88 insertions, 19 deletions
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index ad360965f..add5af515 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -17,13 +17,7 @@ Dive::Dive(dive *d) setDepth(get_depth_string(d->maxdepth)); setDuration(get_dive_duration_string(d->duration.seconds, "h:","min")); - if (!d->watertemp.mkelvin) - m_depth = ""; - - if (get_units()->temperature == units::CELSIUS) - m_depth = QString::number(mkelvin_to_C(d->watertemp.mkelvin), 'f', 1); - else - m_depth = QString::number(mkelvin_to_F(d->watertemp.mkelvin), 'f', 1); + setupDiveTempDetails(); weight_t tw = { total_weight(d) }; setWeight(weight_string(tw.grams)); @@ -33,6 +27,8 @@ Dive::Dive(dive *d) setSac(QString::number(d->sac)); setLocation(get_dive_location(d)); setNotes(d->notes); + setBuddy(d->buddy); + setDivemaster(d->divemaster); } QString Dive::date() const @@ -98,14 +94,14 @@ void Dive::setWeight(const QString &weight) { m_weight = weight; } -QString Dive::temp() const +QString Dive::airtemp() const { - return m_temp; + return m_airtemp; } -void Dive::setTemp(const QString &temp) +void Dive::setAirTemp(const QString &airtemp) { - m_temp = temp; + m_airtemp = airtemp; } QString Dive::duration() const { @@ -170,6 +166,53 @@ void Dive::setTrip(const QString &trip) { m_trip = trip; } +QString Dive::buddy() const +{ + return m_buddy; +} + +void Dive::setBuddy(const QString &buddy) +{ + m_buddy = buddy; +} +QString Dive::divemaster() const +{ + return m_divemaster; +} + +void Dive::setDivemaster(const QString &divemaster) +{ + m_divemaster = divemaster; +} +QString Dive::watertemp() const +{ + return m_watertemp; +} + +void Dive::setWatertemp(const QString &watertemp) +{ + m_watertemp = watertemp; +} + +void Dive::setupDiveTempDetails() +{ + const char *unit; + double d_airTemp, d_waterTemp; + + d_airTemp = get_temp_units(m_thisDive->airtemp.mkelvin, &unit); + d_waterTemp = get_temp_units(m_thisDive->watertemp.mkelvin, &unit); + + setAirTemp(QString::number(d_airTemp) + unit); + setWatertemp(QString::number(d_waterTemp) + unit); + + if (!m_thisDive->airtemp.mkelvin) + setAirTemp(""); + + if (!m_thisDive->watertemp.mkelvin) + setWatertemp(""); +} + + @@ -212,8 +255,10 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const return dive.depth(); else if (role == DiveDurationRole) return dive.duration(); - else if (role == DiveTemperatureRole) - return dive.temp(); + else if (role == DiveAirTemperatureRole) + return dive.airtemp(); + else if (role == DiveWaterTemperatureRole) + return dive.watertemp(); else if (role == DiveWeightRole) return dive.weight(); else if (role == DiveSuitRole) @@ -228,6 +273,10 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const return dive.location(); else if (role == DiveNotesRole) return dive.notes(); + else if (role == DiveBuddyRole) + return dive.buddy(); + else if (role == DiveMasterRole) + return dive.divemaster(); return QVariant(); @@ -242,7 +291,8 @@ QHash<int, QByteArray> DiveListModel::roleNames() const roles[DiveRatingRole] = "rating"; roles[DiveDepthRole] = "depth"; roles[DiveDurationRole] = "duration"; - roles[DiveTemperatureRole] = "temp"; + roles[DiveAirTemperatureRole] = "airtemp"; + roles[DiveWaterTemperatureRole] = "watertemp"; roles[DiveWeightRole] = "weight"; roles[DiveSuitRole] = "suit"; roles[DiveCylinderRole] = "cylinder"; @@ -250,6 +300,8 @@ QHash<int, QByteArray> DiveListModel::roleNames() const roles[DiveSacRole] = "sac"; roles[DiveLocationRole] = "location"; roles[DiveNotesRole] = "notes"; + roles[DiveBuddyRole] = "buddy"; + roles[DiveMasterRole] = "divemaster"; return roles; } diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index f58040508..cb1918879 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -29,8 +29,8 @@ public: QString weight() const; void setWeight(const QString &weight); - QString temp() const; - void setTemp(const QString &temp); + QString airtemp() const; + void setAirTemp(const QString &airtemp); QString duration() const; void setDuration(const QString &duration); @@ -53,14 +53,26 @@ public: QString trip() const; void setTrip(const QString &trip); + QString buddy() const; + void setBuddy(const QString &buddy); + + QString divemaster() const; + void setDivemaster(const QString &divemaster); + + QString watertemp() const; + void setWatertemp(const QString &watertemp); + private: + void setupDiveTempDetails(); + QString m_diveNumber; QString m_trip; QString m_date; QString m_rating; QString m_depth; QString m_duration; - QString m_temp; + QString m_airtemp; + QString m_watertemp; QString m_weight; QString m_suit; QString m_cylinder; @@ -68,6 +80,8 @@ private: QString m_sac; QString m_location; QString m_notes; + QString m_buddy; + QString m_divemaster; dive *m_thisDive; @@ -85,14 +99,17 @@ public: DiveRatingRole, DiveDepthRole, DiveDurationRole, - DiveTemperatureRole, + DiveWaterTemperatureRole, + DiveAirTemperatureRole, DiveWeightRole, DiveSuitRole, DiveCylinderRole, DiveGasRole, DiveSacRole, DiveLocationRole, - DiveNotesRole + DiveNotesRole, + DiveBuddyRole, + DiveMasterRole }; static DiveListModel *instance(); |