Improved phrase of original date in self.

This commit is contained in:
23rd
2025-11-23 18:29:01 +03:00
parent cbc03d1e45
commit 644744ac9e
3 changed files with 49 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#include "ui/text/format_values.h"
#include "base/unixtime.h"
#include "lang/lang_keys.h"
#include "countries/countries_instance.h"
@@ -18,6 +19,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace Ui {
namespace {
constexpr auto kSecondsInYear = 365 * 24 * 60 * 60; // 31536000
[[nodiscard]] QString FormatTextWithReadyAndTotal(
tr::phrase<lngtag_ready, lngtag_total, lngtag_mb> phrase,
qint64 ready,
@@ -100,6 +103,49 @@ QString FormatDateTime(QDateTime date) {
}
}
QString FormatDateTimeSavedFrom(QDateTime dateTime, bool shortFormat) {
const auto current = QDate::currentDate();
const auto date = dateTime.date();
const auto timeStr = QLocale().toString(
dateTime.time(),
QLocale::ShortFormat);
if (date == current) {
return shortFormat
? timeStr
: tr::lng_mediaview_date_time(
tr::now,
lt_date,
tr::lng_weekday7(tr::now),
lt_time,
timeStr);
} else if (date == current.addDays(-1)) {
return tr::lng_mediaview_date_time(
tr::now,
lt_date,
tr::lng_weekday6(tr::now),
lt_time,
timeStr);
}
const auto diff = std::abs(
base::unixtime::now() - base::unixtime::serialize(dateTime));
const auto dateStr = (diff < kSecondsInYear)
? tr::lng_month_day(
tr::now,
lt_month,
Lang::MonthSmall(date.month())(tr::now),
lt_day,
QString::number(date.day()))
: langDayOfMonthFull(date);
return tr::lng_mediaview_date_time(
tr::now,
lt_date,
dateStr,
lt_time,
timeStr);
}
QString FormatDurationText(qint64 duration) {
qint64 hours = (duration / 3600), minutes = (duration % 3600) / 60, seconds = duration % 60;
return (hours ? QString::number(hours) + ':' : QString()) + (minutes >= 10 ? QString() : QString('0')) + QString::number(minutes) + ':' + (seconds >= 10 ? QString() : QString('0')) + QString::number(seconds);

View File

@@ -19,6 +19,7 @@ inline const QString kCreditsCurrency = u"XTR"_q;
[[nodiscard]] QString FormatDownloadText(qint64 ready, qint64 total);
[[nodiscard]] QString FormatProgressText(qint64 ready, qint64 total);
[[nodiscard]] QString FormatDateTime(QDateTime date);
[[nodiscard]] QString FormatDateTimeSavedFrom(QDateTime date, bool shortDate);
[[nodiscard]] QString FormatDurationText(qint64 duration);
[[nodiscard]] QString FormatDurationWords(qint64 duration);
[[nodiscard]] QString FormatDurationWordsSlowmode(qint64 duration);