cTimeFormat/cDateFormat -> QLocale::ShortFormat

This allows to use platform-specific formatting functions
This commit is contained in:
Ilya Fedin 2022-12-15 13:47:56 +04:00 committed by John Preston
parent 9633f93690
commit 66093f0cb5
25 changed files with 46 additions and 73 deletions

View File

@ -79,12 +79,16 @@ Authorizations::Entry ParseEntry(const MTPDauthorization &data) {
const auto nowDate = now.date(); const auto nowDate = now.date();
const auto lastDate = lastTime.date(); const auto lastDate = lastTime.date();
if (lastDate == nowDate) { if (lastDate == nowDate) {
result.active = QLocale().toString(lastTime, cTimeFormat()); result.active = QLocale().toString(
lastTime.time(),
QLocale::ShortFormat);
} else if (lastDate.year() == nowDate.year() } else if (lastDate.year() == nowDate.year()
&& lastDate.weekNumber() == nowDate.weekNumber()) { && lastDate.weekNumber() == nowDate.weekNumber()) {
result.active = langDayOfWeek(lastDate); result.active = langDayOfWeek(lastDate);
} else { } else {
result.active = QLocale().toString(lastDate, cDateFormat()); result.active = QLocale().toString(
lastDate,
QLocale::ShortFormat);
} }
} }
result.location = country; result.location = country;

View File

@ -1374,7 +1374,7 @@ QString PrepareRequestedRowStatus(TimeId date) {
const auto now = QDateTime::currentDateTime(); const auto now = QDateTime::currentDateTime();
const auto parsed = base::unixtime::parse(date); const auto parsed = base::unixtime::parse(date);
const auto parsedDate = parsed.date(); const auto parsedDate = parsed.date();
const auto time = QLocale().toString(parsed.time(), cTimeFormat()); const auto time = QLocale().toString(parsed.time(), QLocale::ShortFormat);
const auto generic = [&] { const auto generic = [&] {
return tr::lng_group_requests_status_date_time( return tr::lng_group_requests_status_date_time(
tr::now, tr::now,

View File

@ -210,7 +210,7 @@ void BoxController::Row::refreshStatus() {
return; return;
} }
auto text = [this] { auto text = [this] {
auto time = QLocale().toString(ItemDateTime(_items.front()).time(), cTimeFormat()); auto time = QLocale().toString(ItemDateTime(_items.front()).time(), QLocale::ShortFormat);
auto today = QDateTime::currentDateTime().date(); auto today = QDateTime::currentDateTime().date();
if (_date == today) { if (_date == today) {
return tr::lng_call_box_status_today(tr::now, lt_time, time); return tr::lng_call_box_status_today(tr::now, lt_time, time);

View File

@ -35,7 +35,7 @@ rpl::producer<QString> StartsWhenText(rpl::producer<TimeId> date) {
const auto time = QLocale().toString( const auto time = QLocale().toString(
parsedDate.time(), parsedDate.time(),
Ui::Integration::Instance().timeFormat()); QLocale::ShortFormat);
auto exact = tr::lng_group_call_starts_short_date( auto exact = tr::lng_group_call_starts_short_date(
lt_date, lt_date,
rpl::single(langDayOfMonthFull(dateDay.date())), rpl::single(langDayOfMonthFull(dateDay.date())),

View File

@ -284,9 +284,6 @@ void Application::run() {
DEBUG_LOG(("Application Info: inited...")); DEBUG_LOG(("Application Info: inited..."));
cChangeDateFormat(QLocale().dateFormat(QLocale::ShortFormat));
cChangeTimeFormat(QLocale().timeFormat(QLocale::ShortFormat));
DEBUG_LOG(("Application Info: starting app...")); DEBUG_LOG(("Application Info: starting app..."));
// Create mime database, so it won't be slow later. // Create mime database, so it won't be slow later.

View File

@ -137,10 +137,6 @@ bool UiIntegration::screenIsLocked() {
return Core::App().screenIsLocked(); return Core::App().screenIsLocked();
} }
QString UiIntegration::timeFormat() {
return cTimeFormat();
}
std::shared_ptr<ClickHandler> UiIntegration::createLinkHandler( std::shared_ptr<ClickHandler> UiIntegration::createLinkHandler(
const EntityLinkData &data, const EntityLinkData &data,
const std::any &context) { const std::any &context) {

View File

@ -46,7 +46,6 @@ public:
void activationFromTopPanel() override; void activationFromTopPanel() override;
bool screenIsLocked() override; bool screenIsLocked() override;
QString timeFormat() override;
std::shared_ptr<ClickHandler> createLinkHandler( std::shared_ptr<ClickHandler> createLinkHandler(
const EntityLinkData &data, const EntityLinkData &data,

View File

@ -1120,8 +1120,8 @@ std::optional<QString> RestrictionError(
auto restrictedUntil = channel->restrictedUntil(); auto restrictedUntil = channel->restrictedUntil();
if (restrictedUntil > 0 && !ChannelData::IsRestrictedForever(restrictedUntil)) { if (restrictedUntil > 0 && !ChannelData::IsRestrictedForever(restrictedUntil)) {
auto restrictedUntilDateTime = base::unixtime::parse(channel->restrictedUntil()); auto restrictedUntilDateTime = base::unixtime::parse(channel->restrictedUntil());
auto date = QLocale().toString(restrictedUntilDateTime, cDateFormat()); auto date = QLocale().toString(restrictedUntilDateTime.date(), QLocale::ShortFormat);
auto time = QLocale().toString(restrictedUntilDateTime, cTimeFormat()); auto time = QLocale().toString(restrictedUntilDateTime.time(), QLocale::ShortFormat);
switch (restriction) { switch (restriction) {
case Flag::SendPolls: case Flag::SendPolls:

View File

@ -442,13 +442,13 @@ QString OnlineText(TimeId online, TimeId now) {
const auto nowFull = base::unixtime::parse(now); const auto nowFull = base::unixtime::parse(now);
const auto locale = QLocale(); const auto locale = QLocale();
if (onlineFull.date() == nowFull.date()) { if (onlineFull.date() == nowFull.date()) {
const auto onlineTime = locale.toString(onlineFull.time(), cTimeFormat()); const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat);
return tr::lng_status_lastseen_today(tr::now, lt_time, onlineTime); return tr::lng_status_lastseen_today(tr::now, lt_time, onlineTime);
} else if (onlineFull.date().addDays(1) == nowFull.date()) { } else if (onlineFull.date().addDays(1) == nowFull.date()) {
const auto onlineTime = locale.toString(onlineFull.time(), cTimeFormat()); const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat);
return tr::lng_status_lastseen_yesterday(tr::now, lt_time, onlineTime); return tr::lng_status_lastseen_yesterday(tr::now, lt_time, onlineTime);
} }
const auto date = locale.toString(onlineFull.date(), cDateFormat()); const auto date = locale.toString(onlineFull.date(), QLocale::ShortFormat);
return tr::lng_status_lastseen_date(tr::now, lt_date, date); return tr::lng_status_lastseen_date(tr::now, lt_date, date);
} }
@ -469,14 +469,14 @@ QString OnlineTextFull(not_null<UserData*> user, TimeId now) {
const auto nowFull = base::unixtime::parse(now); const auto nowFull = base::unixtime::parse(now);
const auto locale = QLocale(); const auto locale = QLocale();
if (onlineFull.date() == nowFull.date()) { if (onlineFull.date() == nowFull.date()) {
const auto onlineTime = locale.toString(onlineFull.time(), cTimeFormat()); const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat);
return tr::lng_status_lastseen_today(tr::now, lt_time, onlineTime); return tr::lng_status_lastseen_today(tr::now, lt_time, onlineTime);
} else if (onlineFull.date().addDays(1) == nowFull.date()) { } else if (onlineFull.date().addDays(1) == nowFull.date()) {
const auto onlineTime = locale.toString(onlineFull.time(), cTimeFormat()); const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat);
return tr::lng_status_lastseen_yesterday(tr::now, lt_time, onlineTime); return tr::lng_status_lastseen_yesterday(tr::now, lt_time, onlineTime);
} }
const auto date = locale.toString(onlineFull.date(), cDateFormat()); const auto date = locale.toString(onlineFull.date(), QLocale::ShortFormat);
const auto time = locale.toString(onlineFull.time(), cTimeFormat()); const auto time = locale.toString(onlineFull.time(), QLocale::ShortFormat);
return tr::lng_status_lastseen_date_time(tr::now, lt_date, date, lt_time, time); return tr::lng_status_lastseen_date_time(tr::now, lt_date, date, lt_time, time);
} }

View File

@ -92,12 +92,12 @@ void PaintRowDate(
const auto wasSameDay = (lastDate == nowDate); const auto wasSameDay = (lastDate == nowDate);
const auto wasRecently = qAbs(lastTime.secsTo(now)) < kRecentlyInSeconds; const auto wasRecently = qAbs(lastTime.secsTo(now)) < kRecentlyInSeconds;
if (wasSameDay || wasRecently) { if (wasSameDay || wasRecently) {
return QLocale().toString(lastTime, cTimeFormat()); return QLocale().toString(lastTime.time(), QLocale::ShortFormat);
} else if (lastDate.year() == nowDate.year() } else if (lastDate.year() == nowDate.year()
&& lastDate.weekNumber() == nowDate.weekNumber()) { && lastDate.weekNumber() == nowDate.weekNumber()) {
return langDayOfWeek(lastDate); return langDayOfWeek(lastDate);
} else { } else {
return QLocale().toString(lastDate, cDateFormat()); return QLocale().toString(lastDate, QLocale::ShortFormat);
} }
}(); }();
PaintRowTopRight(p, dt, rectForName, context); PaintRowTopRight(p, dt, rectForName, context);

View File

@ -2733,9 +2733,6 @@ TextForMimeData HistoryInner::getSelectedText() const {
TextForMimeData unwrapped; TextForMimeData unwrapped;
}; };
const auto timeFormat = QString(", [%1 %2]\n")
.arg(cDateFormat())
.arg(cTimeFormat());
auto groups = base::flat_set<not_null<const Data::Group*>>(); auto groups = base::flat_set<not_null<const Data::Group*>>();
auto fullSize = 0; auto fullSize = 0;
auto texts = base::flat_map<Data::MessagePosition, Part>(); auto texts = base::flat_map<Data::MessagePosition, Part>();
@ -2745,7 +2742,8 @@ TextForMimeData HistoryInner::getSelectedText() const {
TextForMimeData &&unwrapped) { TextForMimeData &&unwrapped) {
const auto i = texts.emplace(item->position(), Part{ const auto i = texts.emplace(item->position(), Part{
.name = item->author()->name(), .name = item->author()->name(),
.time = QLocale().toString(ItemDateTime(item), timeFormat), .time = QString(", [%1]\n").arg(
QLocale().toString(ItemDateTime(item), QLocale::ShortFormat)),
.unwrapped = std::move(unwrapped), .unwrapped = std::move(unwrapped),
}).first; }).first;
fullSize += i->second.name.size() fullSize += i->second.name.size()

View File

@ -4384,7 +4384,9 @@ PreparedServiceText HistoryItem::prepareCallScheduledText(
Ui::Text::WithEntities); Ui::Text::WithEntities);
} }
}; };
const auto time = QLocale().toString(scheduled.time(), cTimeFormat()); const auto time = QLocale().toString(
scheduled.time(),
QLocale::ShortFormat);
const auto prepareGeneric = [&] { const auto prepareGeneric = [&] {
prepareWithDate(tr::lng_group_call_starts_date( prepareWithDate(tr::lng_group_call_starts_date(
tr::now, tr::now,

View File

@ -466,7 +466,9 @@ void BottomInfo::layoutDateText() {
: QString(); : QString();
const auto author = _data.author; const auto author = _data.author;
const auto prefix = !author.isEmpty() ? u", "_q : QString(); const auto prefix = !author.isEmpty() ? u", "_q : QString();
const auto date = edited + QLocale().toString(_data.date, cTimeFormat()); const auto date = edited + QLocale().toString(
_data.date.time(),
QLocale::ShortFormat);
const auto afterAuthor = prefix + date; const auto afterAuthor = prefix + date;
const auto afterAuthorWidth = st::msgDateFont->width(afterAuthor); const auto afterAuthorWidth = st::msgDateFont->width(afterAuthor);
const auto authorWidth = st::msgDateFont->width(author); const auto authorWidth = st::msgDateFont->width(author);

View File

@ -2277,9 +2277,6 @@ TextForMimeData ListWidget::getSelectedText() const {
return _selectedText; return _selectedText;
} }
const auto timeFormat = QString(", [%1 %2]\n")
.arg(cDateFormat())
.arg(cTimeFormat());
auto groups = base::flat_set<not_null<const Data::Group*>>(); auto groups = base::flat_set<not_null<const Data::Group*>>();
auto fullSize = 0; auto fullSize = 0;
auto texts = std::vector<std::pair< auto texts = std::vector<std::pair<
@ -2290,7 +2287,8 @@ TextForMimeData ListWidget::getSelectedText() const {
const auto wrapItem = [&]( const auto wrapItem = [&](
not_null<HistoryItem*> item, not_null<HistoryItem*> item,
TextForMimeData &&unwrapped) { TextForMimeData &&unwrapped) {
auto time = QLocale().toString(ItemDateTime(item), timeFormat); auto time = QString(", [%1]\n").arg(
QLocale().toString(ItemDateTime(item), QLocale::ShortFormat));
auto part = TextForMimeData(); auto part = TextForMimeData();
auto size = item->author()->name().size() auto size = item->author()->name().size()
+ time.size() + time.size()

View File

@ -46,7 +46,9 @@ Call::Call(
, _video(call->video) { , _video(call->video) {
const auto item = parent->data(); const auto item = parent->data();
_text = Data::MediaCall::Text(item, _reason, _video); _text = Data::MediaCall::Text(item, _reason, _video);
_status = QLocale().toString(parent->dateTime().time(), cTimeFormat()); _status = QLocale().toString(
parent->dateTime().time(),
QLocale::ShortFormat);
if (_duration) { if (_duration) {
_status = tr::lng_call_duration_info( _status = tr::lng_call_duration_info(
tr::now, tr::now,

View File

@ -220,9 +220,7 @@ QString langDateTime(const QDateTime &date) {
lt_date, lt_date,
langDayOfMonth(date.date()), langDayOfMonth(date.date()),
lt_time, lt_time,
QLocale().toString( QLocale().toString(date.time(), QLocale::ShortFormat));
date.time(),
Ui::Integration::Instance().timeFormat()));
} }
QString langDateTimeFull(const QDateTime &date) { QString langDateTimeFull(const QDateTime &date) {
@ -231,7 +229,5 @@ QString langDateTimeFull(const QDateTime &date) {
lt_date, lt_date,
langDayOfMonthFull(date.date()), langDayOfMonthFull(date.date()),
lt_time, lt_time,
QLocale().toString( QLocale().toString(date.time(), QLocale::ShortFormat));
date.time(),
Ui::Integration::Instance().timeFormat()));
} }

View File

@ -1021,7 +1021,7 @@ void Widget::handleSongChange() {
const auto date = [item] { const auto date = [item] {
const auto parsed = ItemDateTime(item); const auto parsed = ItemDateTime(item);
const auto date = parsed.date(); const auto date = parsed.date();
const auto time = QLocale().toString(parsed.time(), cTimeFormat()); const auto time = QLocale().toString(parsed.time(), QLocale::ShortFormat);
const auto today = QDateTime::currentDateTime().date(); const auto today = QDateTime::currentDateTime().date();
if (date == today) { if (date == today) {
return tr::lng_player_message_today( return tr::lng_player_message_today(

View File

@ -841,7 +841,7 @@ void OverlayWidget::updateControls() {
} }
return dNow; return dNow;
}(); }();
_dateText = Ui::FormatDateTime(d, cDateFormat(), cTimeFormat()); _dateText = Ui::FormatDateTime(d);
if (!_fromName.isEmpty()) { if (!_fromName.isEmpty()) {
_fromNameLabel.setText(st::mediaviewTextStyle, _fromName, Ui::NameTextOptions()); _fromNameLabel.setText(st::mediaviewTextStyle, _fromName, Ui::NameTextOptions());
_nameNav = QRect(st::mediaviewTextLeft, height() - st::mediaviewTextTop, qMin(_fromNameLabel.maxWidth(), width() / 3), st::mediaviewFont->height); _nameNav = QRect(st::mediaviewTextLeft, height() - st::mediaviewTextTop, qMin(_fromNameLabel.maxWidth(), width() / 3), st::mediaviewFont->height);

View File

@ -47,9 +47,6 @@ QByteArray gLocalSalt;
int gScreenScale = style::kScaleAuto; int gScreenScale = style::kScaleAuto;
int gConfigScale = style::kScaleAuto; int gConfigScale = style::kScaleAuto;
QString gDateFormat = u"dd.MM.yy"_q;
QString gTimeFormat = u"hh:mm"_q;
RecentStickerPreload gRecentStickersPreload; RecentStickerPreload gRecentStickersPreload;
RecentStickerPack gRecentStickers; RecentStickerPack gRecentStickers;

View File

@ -82,8 +82,6 @@ DeclareSetting(bool, Quit);
DeclareSetting(QByteArray, LocalSalt); DeclareSetting(QByteArray, LocalSalt);
DeclareSetting(int, ScreenScale); DeclareSetting(int, ScreenScale);
DeclareSetting(int, ConfigScale); DeclareSetting(int, ConfigScale);
DeclareSetting(QString, DateFormat);
DeclareSetting(QString, TimeFormat);
class DocumentData; class DocumentData;
@ -111,14 +109,6 @@ DeclareSetting(QString, StartUrl);
DeclareSetting(int, OtherOnline); DeclareSetting(int, OtherOnline);
inline void cChangeDateFormat(const QString &newFormat) {
if (!newFormat.isEmpty()) cSetDateFormat(newFormat);
}
inline void cChangeTimeFormat(const QString &newFormat) {
if (!newFormat.isEmpty()) cSetTimeFormat(newFormat);
}
inline bool passcodeCanTry() { inline bool passcodeCanTry() {
if (cPasscodeBadTries() < 3) return true; if (cPasscodeBadTries() < 3) return true;
auto dt = crl::now() - cPasscodeLastTry(); auto dt = crl::now() - cPasscodeLastTry();

View File

@ -452,9 +452,7 @@ rpl::producer<QString> Helper::infoLabelValue(
user user
) | rpl::map([](const Support::UserInfo &info) { ) | rpl::map([](const Support::UserInfo &info) {
const auto time = Ui::FormatDateTime( const auto time = Ui::FormatDateTime(
base::unixtime::parse(info.date), base::unixtime::parse(info.date));
cDateFormat(),
cTimeFormat());
return info.author + ", " + time; return info.author + ", " + time;
}); });
} }

View File

@ -308,7 +308,7 @@ void GroupCallBar::paintTitleAndStatus(Painter &p) {
const auto date = parsed.date(); const auto date = parsed.date();
const auto time = QLocale().toString( const auto time = QLocale().toString(
parsed.time(), parsed.time(),
Ui::Integration::Instance().timeFormat()); QLocale::ShortFormat);
const auto today = QDate::currentDate(); const auto today = QDate::currentDate();
if (date == today) { if (date == today) {
return tr::lng_group_call_starts_today(tr::now, lt_time, time); return tr::lng_group_call_starts_today(tr::now, lt_time, time);

View File

@ -79,28 +79,25 @@ QString FormatProgressText(qint64 ready, qint64 total) {
total); total);
} }
QString FormatDateTime( QString FormatDateTime(QDateTime date) {
QDateTime date,
QString dateFormat,
QString timeFormat) {
const auto now = QDateTime::currentDateTime(); const auto now = QDateTime::currentDateTime();
if (date.date() == now.date()) { if (date.date() == now.date()) {
return tr::lng_mediaview_today( return tr::lng_mediaview_today(
tr::now, tr::now,
lt_time, lt_time,
QLocale().toString(date.time(), timeFormat)); QLocale().toString(date.time(), QLocale::ShortFormat));
} else if (date.date().addDays(1) == now.date()) { } else if (date.date().addDays(1) == now.date()) {
return tr::lng_mediaview_yesterday( return tr::lng_mediaview_yesterday(
tr::now, tr::now,
lt_time, lt_time,
QLocale().toString(date.time(), timeFormat)); QLocale().toString(date.time(), QLocale::ShortFormat));
} else { } else {
return tr::lng_mediaview_date_time( return tr::lng_mediaview_date_time(
tr::now, tr::now,
lt_date, lt_date,
QLocale().toString(date.date(), dateFormat), QLocale().toString(date.date(), QLocale::ShortFormat),
lt_time, lt_time,
QLocale().toString(date.time(), timeFormat)); QLocale().toString(date.time(), QLocale::ShortFormat));
} }
} }

View File

@ -16,10 +16,7 @@ inline constexpr auto FileStatusSizeFailed = 0xFFFFFFF2LL;
[[nodiscard]] QString FormatSizeText(qint64 size); [[nodiscard]] QString FormatSizeText(qint64 size);
[[nodiscard]] QString FormatDownloadText(qint64 ready, qint64 total); [[nodiscard]] QString FormatDownloadText(qint64 ready, qint64 total);
[[nodiscard]] QString FormatProgressText(qint64 ready, qint64 total); [[nodiscard]] QString FormatProgressText(qint64 ready, qint64 total);
[[nodiscard]] QString FormatDateTime( [[nodiscard]] QString FormatDateTime(QDateTime date);
QDateTime date,
QString dateFormat,
QString timeFormat);
[[nodiscard]] QString FormatDurationText(qint64 duration); [[nodiscard]] QString FormatDurationText(qint64 duration);
[[nodiscard]] QString FormatDurationWords(qint64 duration); [[nodiscard]] QString FormatDurationWords(qint64 duration);
[[nodiscard]] QString FormatDurationWordsSlowmode(qint64 duration); [[nodiscard]] QString FormatDurationWordsSlowmode(qint64 duration);

@ -1 +1 @@
Subproject commit c5f09bbf695e1dff80f378bb5907581f65547f9f Subproject commit 6c33f9218e2f2c4fcf91f0042400cd89c00dc3ed