diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp index b62574b82..b5e40ccc5 100644 --- a/src/models/messageeventmodel.cpp +++ b/src/models/messageeventmodel.cpp @@ -384,25 +384,6 @@ QDateTime MessageEventModel::makeMessageTimestamp(const Quotient::Room::rev_iter return {}; } -QString MessageEventModel::renderDate(const QDateTime ×tamp) -{ - 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) { 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) { 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) { diff --git a/src/models/messageeventmodel.h b/src/models/messageeventmodel.h index 23472bdec..c83386c66 100644 --- a/src/models/messageeventmodel.h +++ b/src/models/messageeventmodel.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include "linkpreviewer.h" @@ -184,13 +185,13 @@ private: QPersistentModelIndex m_lastReadEventIndex; int rowBelowInserted = -1; bool movingEvent = false; + KFormat m_format; QMap m_linkPreviewers; QMap m_reactionModels; [[nodiscard]] int timelineBaseIndex() const; [[nodiscard]] QDateTime makeMessageTimestamp(const Quotient::Room::rev_iter_t &baseIt) const; - [[nodiscard]] static QString renderDate(const QDateTime ×tamp); bool canFetchMore(const QModelIndex &parent) const override; void fetchMore(const QModelIndex &parent) override;