diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp index 1fea6e2da..c3781e0d2 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp @@ -512,7 +512,7 @@ QString InnerWidget::tooltipText() const { if (const auto view = App::hoveredItem()) { const auto format = QLocale::system().dateTimeFormat( QLocale::LongFormat); - auto dateText = view->dateTime().toString(format); + auto dateText = HistoryView::DateTooltipText(view); const auto sentIt = _itemDates.find(view->data()); if (sentIt != end(_itemDates)) { diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 755dd3387..3ccafebf4 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -3313,40 +3313,7 @@ QString HistoryInner::tooltipText() const { if (_mouseCursorState == CursorState::Date && _mouseAction == MouseAction::None) { if (const auto view = App::hoveredItem()) { - auto dateText = view->dateTime().toString( - QLocale::system().dateTimeFormat(QLocale::LongFormat)); - if (const auto editedDate = view->displayedEditDate()) { - dateText += '\n' + tr::lng_edited_date( - tr::now, - lt_date, - base::unixtime::parse(editedDate).toString( - QLocale::system().dateTimeFormat( - QLocale::LongFormat))); - } - if (const auto forwarded = view->data()->Get()) { - dateText += '\n' + tr::lng_forwarded_date( - tr::now, - lt_date, - base::unixtime::parse(forwarded->originalDate).toString( - QLocale::system().dateTimeFormat( - QLocale::LongFormat))); - if (const auto media = view->media()) { - if (media->hidesForwardedInfo()) { - dateText += "\n" + tr::lng_forwarded( - tr::now, - lt_user, - (forwarded->originalSender - ? forwarded->originalSender->shortName() - : forwarded->hiddenSenderInfo->firstName)); - } - } - } - if (const auto msgsigned = view->data()->Get()) { - if (msgsigned->isElided && !msgsigned->isAnonymousRank) { - dateText += '\n' + tr::lng_signed_author(tr::now, lt_user, msgsigned->author); - } - } - return dateText; + return HistoryView::DateTooltipText(view); } } else if (_mouseCursorState == CursorState::Forwarded && _mouseAction == MouseAction::None) { diff --git a/Telegram/SourceFiles/history/view/history_view_element.cpp b/Telegram/SourceFiles/history/view/history_view_element.cpp index eb533b848..52a488d99 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.cpp +++ b/Telegram/SourceFiles/history/view/history_view_element.cpp @@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/media/history_view_sticker.h" #include "history/view/media/history_view_large_emoji.h" #include "history/history.h" +#include "base/unixtime.h" #include "core/application.h" #include "core/core_settings.h" #include "main/main_session.h" @@ -157,6 +158,40 @@ TextSelection ShiftItemSelection( return ShiftItemSelection(selection, byText.length()); } +QString DateTooltipText(not_null view) { + const auto format = QLocale::system().dateTimeFormat(QLocale::LongFormat); + auto dateText = view->dateTime().toString(format); + if (const auto editedDate = view->displayedEditDate()) { + dateText += '\n' + tr::lng_edited_date( + tr::now, + lt_date, + base::unixtime::parse(editedDate).toString(format)); + } + if (const auto forwarded = view->data()->Get()) { + dateText += '\n' + tr::lng_forwarded_date( + tr::now, + lt_date, + base::unixtime::parse(forwarded->originalDate).toString(format)); + if (const auto media = view->media()) { + if (media->hidesForwardedInfo()) { + dateText += '\n' + tr::lng_forwarded( + tr::now, + lt_user, + (forwarded->originalSender + ? forwarded->originalSender->shortName() + : forwarded->hiddenSenderInfo->firstName)); + } + } + } + if (const auto msgsigned = view->data()->Get()) { + if (msgsigned->isElided && !msgsigned->isAnonymousRank) { + dateText += '\n' + + tr::lng_signed_author(tr::now, lt_user, msgsigned->author); + } + } + return dateText; +} + void UnreadBar::init(const QString &string) { text = string; width = st::semiboldFont->width(text); diff --git a/Telegram/SourceFiles/history/view/history_view_element.h b/Telegram/SourceFiles/history/view/history_view_element.h index 82c610eee..2515e9e91 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.h +++ b/Telegram/SourceFiles/history/view/history_view_element.h @@ -126,6 +126,8 @@ TextSelection ShiftItemSelection( TextSelection selection, const Ui::Text::String &byText); +QString DateTooltipText(not_null view); + // Any HistoryView::Element can have this Component for // displaying the unread messages bar above the message. struct UnreadBar : public RuntimeComponent { diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index e75789e2a..2fa498844 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -1216,8 +1216,7 @@ QString ListWidget::tooltipText() const { ? _overElement->data().get() : nullptr; if (_mouseCursorState == CursorState::Date && item) { - return _overElement->dateTime().toString( - QLocale::system().dateTimeFormat(QLocale::LongFormat)); + return HistoryView::DateTooltipText(_overElement); } else if (_mouseCursorState == CursorState::Forwarded && item) { if (const auto forwarded = item->Get()) { return forwarded->text.toString();