mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 22:33:24 +00:00
Mobile: return dateTime directly from DiveListModel
We don't want to generate a DiveObjectHelper numerous times for every item in the dive list. Therefore, return this data directly from the model. In this case, don't remove from DiveObjectHelper, as these data might be used by grantlee templates. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
54720e6cff
commit
c6b3309d13
3 changed files with 11 additions and 2 deletions
|
@ -171,7 +171,7 @@ Kirigami.ScrollablePage {
|
|||
|
||||
Controls.Label {
|
||||
id: dateLabel
|
||||
text: dive.date + " " + dive.time
|
||||
text: dateTime
|
||||
width: Math.max(locationText.width * 0.45, paintedWidth) // helps vertical alignment throughout listview
|
||||
font.pointSize: subsurfaceTheme.smallPointSize
|
||||
color: innerListItem.checked ? subsurfaceTheme.darkerPrimaryTextColor : secondaryTextColor
|
||||
|
|
|
@ -241,14 +241,21 @@ QVariant DiveListModel::data(const QModelIndex &index, int role) const
|
|||
|
||||
DiveObjectHelper *curr_dive = m_dives[index.row()];
|
||||
const dive *d = curr_dive->getDive();
|
||||
if (!d)
|
||||
return QVariant();
|
||||
switch(role) {
|
||||
case DiveRole: return QVariant::fromValue<QObject*>(curr_dive);
|
||||
case DiveDateRole: return (qlonglong)curr_dive->timestamp();
|
||||
case TripIdRole: return d->divetrip ? QString::number((quint64)d->divetrip, 16) : QString();
|
||||
case TripNrDivesRole: return d->divetrip ? d->divetrip->dives.nr : 0;
|
||||
case DateTimeRole: {
|
||||
QDateTime localTime = QDateTime::fromMSecsSinceEpoch(1000 * d->when, Qt::UTC);
|
||||
localTime.setTimeSpec(Qt::UTC);
|
||||
return QStringLiteral("%1 %2").arg(localTime.date().toString(prefs.date_format_short),
|
||||
localTime.time().toString(prefs.time_format));
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> DiveListModel::roleNames() const
|
||||
|
@ -258,6 +265,7 @@ QHash<int, QByteArray> DiveListModel::roleNames() const
|
|||
roles[DiveDateRole] = "date";
|
||||
roles[TripIdRole] = "tripId";
|
||||
roles[TripNrDivesRole] = "tripNrDives";
|
||||
roles[DateTimeRole] = "dateTime";
|
||||
return roles;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ public:
|
|||
DiveDateRole,
|
||||
TripIdRole,
|
||||
TripNrDivesRole,
|
||||
DateTimeRole
|
||||
};
|
||||
|
||||
static DiveListModel *instance();
|
||||
|
|
Loading…
Add table
Reference in a new issue