summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mobile-widgets/qml/DiveList.qml2
-rw-r--r--qt-models/divelistmodel.cpp10
-rw-r--r--qt-models/divelistmodel.h1
3 files changed, 11 insertions, 2 deletions
diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml
index b53a8c42b..ddcb81834 100644
--- a/mobile-widgets/qml/DiveList.qml
+++ b/mobile-widgets/qml/DiveList.qml
@@ -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
diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp
index 15934f9d6..b41a16003 100644
--- a/qt-models/divelistmodel.cpp
+++ b/qt-models/divelistmodel.cpp
@@ -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;
}
diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h
index e799ecf8a..c0d7aa0a0 100644
--- a/qt-models/divelistmodel.h
+++ b/qt-models/divelistmodel.h
@@ -40,6 +40,7 @@ public:
DiveDateRole,
TripIdRole,
TripNrDivesRole,
+ DateTimeRole
};
static DiveListModel *instance();