From 8314fab81f8ba7ec7297322b12e483daddd05aca Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Sun, 11 Sep 2022 06:09:08 +0300 Subject: [PATCH] [Visual] Make chat sections header multiline --- .../view/history_view_scheduled_section.cpp | 5 +- .../view/history_view_top_bar_widget.cpp | 49 ++++++++++--------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index fcc2a33c5..b74caf533 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -110,7 +110,7 @@ ScheduledWidget::ScheduledWidget( controller, [=](not_null emoji) { listShowPremiumToast(emoji); }, ComposeControls::Mode::Scheduled, - SendMenu::Type::Disabled)) + SendMenu::Type::PreviewOnly)) , _cornerButtons( _scroll.data(), controller->chatStyle(), @@ -133,6 +133,9 @@ ScheduledWidget::ScheduledWidget( .section = Dialogs::EntryState::Section::Scheduled, }; _topBar->setActiveChat(state, nullptr); + _topBar->setCustomTitle(_history->peer->isSelf() + ? tr::lng_reminder_messages(tr::now) + : tr::lng_scheduled_messages(tr::now)); _composeControls->setCurrentDialogsEntryState(state); controller->setCurrentDialogsEntryState(state); diff --git a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp index b32dcc168..fcea81e99 100644 --- a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp @@ -503,16 +503,9 @@ void TopBarWidget::paintTopBar(Painter &p) { p.setPen(st::historyStatusFg); p.drawTextLeft(nameleft, statustop, width(), _customTitleText); } - } else if (folder - || history->peer->sharedMediaInfo() - || (_activeChat.section == Section::Scheduled) - || (_activeChat.section == Section::Pinned)) { + } else if (folder || history->peer->sharedMediaInfo()) { auto text = (_activeChat.section == Section::Scheduled) - ? ((history && history->peer->isSelf()) - ? tr::lng_reminder_messages(tr::now) - : tr::lng_scheduled_messages(tr::now)) - : (_activeChat.section == Section::Pinned) - ? _customTitleText + ? tr::lng_reminder_messages(tr::now) : folder ? folder->chatListName() : history->peer->isSelf() @@ -531,25 +524,33 @@ void TopBarWidget::paintTopBar(Painter &p) { (height() - st::historySavedFont->height) / 2, width(), text); - } else if (_activeChat.section == Section::Replies) { + } else if (_activeChat.section == Section::Replies + || _activeChat.section == Section::Scheduled + || _activeChat.section == Section::Pinned) { p.setPen(st::dialogsNameFg); - p.setFont(st::semiboldFont); - p.drawTextLeft( - nameleft, - nametop, - width(), - tr::lng_manage_discussion_group(tr::now)); + + Ui::Text::String textStr; + textStr.setText( + st::semiboldTextStyle, + (_activeChat.section == Section::Replies + ? tr::lng_manage_discussion_group(tr::now) + : history->peer->isSelf() + ? tr::lng_saved_messages(tr::now) + : history->peer->topBarNameText().toString()), + Ui::NameTextOptions()); + textStr.drawElided(p, nameleft, nametop, width()); p.setFont(st::dialogsTextFont); if (!paintConnectingState(p, nameleft, statustop, width()) - && !paintSendAction( - p, - nameleft, - statustop, - availableWidth, - width(), - st::historyStatusFgTyping, - now)) { + && (_activeChat.section != Section::Replies + || !paintSendAction( + p, + nameleft, + statustop, + availableWidth, + width(), + st::historyStatusFgTyping, + now))) { p.setPen(st::historyStatusFg); p.drawTextLeft(nameleft, statustop, width(), _customTitleText); }