Use KFormat for formatting dates

This commit is contained in:
Tobias Fella
2023-05-17 23:41:07 +02:00
parent 67107959e4
commit b254b4aa9b
2 changed files with 3 additions and 21 deletions

View File

@@ -384,25 +384,6 @@ QDateTime MessageEventModel::makeMessageTimestamp(const Quotient::Room::rev_iter
return {}; return {};
} }
QString MessageEventModel::renderDate(const QDateTime &timestamp)
{
auto date = timestamp.toLocalTime().date();
if (date == QDate::currentDate()) {
return i18n("Today");
}
if (date == QDate::currentDate().addDays(-1)) {
return i18n("Yesterday");
}
if (date == QDate::currentDate().addDays(-2)) {
return i18n("The day before yesterday");
}
if (date > QDate::currentDate().addDays(-7)) {
return date.toString("dddd");
}
return QLocale::system().toString(date, QLocale::ShortFormat);
}
void MessageEventModel::refreshLastUserEvents(int baseTimelineRow) void MessageEventModel::refreshLastUserEvents(int baseTimelineRow)
{ {
if (!m_currentRoom || m_currentRoom->timelineSize() <= baseTimelineRow) { if (!m_currentRoom || m_currentRoom->timelineSize() <= baseTimelineRow) {
@@ -701,7 +682,7 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
if (role == TimeRole || role == SectionRole) { if (role == TimeRole || role == SectionRole) {
auto ts = isPending ? pendingIt->lastUpdated() : makeMessageTimestamp(timelineIt); auto ts = isPending ? pendingIt->lastUpdated() : makeMessageTimestamp(timelineIt);
return role == TimeRole ? QVariant(ts) : renderDate(ts); return role == TimeRole ? QVariant(ts) : m_format.formatRelativeDate(ts.toLocalTime().date(), QLocale::ShortFormat);
} }
if (role == ShowLinkPreviewRole) { if (role == ShowLinkPreviewRole) {

View File

@@ -3,6 +3,7 @@
#pragma once #pragma once
#include <KFormat>
#include <QAbstractListModel> #include <QAbstractListModel>
#include "linkpreviewer.h" #include "linkpreviewer.h"
@@ -184,13 +185,13 @@ private:
QPersistentModelIndex m_lastReadEventIndex; QPersistentModelIndex m_lastReadEventIndex;
int rowBelowInserted = -1; int rowBelowInserted = -1;
bool movingEvent = false; bool movingEvent = false;
KFormat m_format;
QMap<QString, LinkPreviewer *> m_linkPreviewers; QMap<QString, LinkPreviewer *> m_linkPreviewers;
QMap<QString, ReactionModel *> m_reactionModels; QMap<QString, ReactionModel *> m_reactionModels;
[[nodiscard]] int timelineBaseIndex() const; [[nodiscard]] int timelineBaseIndex() const;
[[nodiscard]] QDateTime makeMessageTimestamp(const Quotient::Room::rev_iter_t &baseIt) const; [[nodiscard]] QDateTime makeMessageTimestamp(const Quotient::Room::rev_iter_t &baseIt) const;
[[nodiscard]] static QString renderDate(const QDateTime &timestamp);
bool canFetchMore(const QModelIndex &parent) const override; bool canFetchMore(const QModelIndex &parent) const override;
void fetchMore(const QModelIndex &parent) override; void fetchMore(const QModelIndex &parent) override;