Add more dive details to the DiveListModel

Add some more details to the model.

Signed-off-by: Grace Karanja <gracie.karanja89@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Grace Karanja 2015-06-18 09:12:52 +03:00 committed by Dirk Hohndel
parent e4e6e896c1
commit d613ed0105
2 changed files with 88 additions and 19 deletions

View file

@ -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;
}

View file

@ -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();