[Visual] Make chat sections header multiline

This commit is contained in:
Eric Kotato 2022-09-11 06:09:08 +03:00
parent 53f1893b97
commit 5f0433564d
2 changed files with 29 additions and 25 deletions

View file

@ -105,7 +105,7 @@ ScheduledWidget::ScheduledWidget(
this, this,
controller, controller,
ComposeControls::Mode::Scheduled, ComposeControls::Mode::Scheduled,
SendMenu::Type::Disabled)) SendMenu::Type::PreviewOnly))
, _scrollDown( , _scrollDown(
_scroll, _scroll,
controller->chatStyle()->value(lifetime(), st::historyToDown)) { controller->chatStyle()->value(lifetime(), st::historyToDown)) {
@ -127,6 +127,9 @@ ScheduledWidget::ScheduledWidget(
.section = Dialogs::EntryState::Section::Scheduled, .section = Dialogs::EntryState::Section::Scheduled,
}; };
_topBar->setActiveChat(state, nullptr); _topBar->setActiveChat(state, nullptr);
_topBar->setCustomTitle(_history->peer->isSelf()
? tr::lng_reminder_messages(tr::now)
: tr::lng_scheduled_messages(tr::now));
_composeControls->setCurrentDialogsEntryState(state); _composeControls->setCurrentDialogsEntryState(state);
_topBar->move(0, 0); _topBar->move(0, 0);

View file

@ -432,17 +432,10 @@ void TopBarWidget::paintTopBar(Painter &p) {
const auto now = crl::now(); const auto now = crl::now();
const auto history = _activeChat.key.history(); const auto history = _activeChat.key.history();
const auto folder = _activeChat.key.folder(); const auto folder = _activeChat.key.folder();
if (folder if (folder || history->peer->sharedMediaInfo()) {
|| history->peer->sharedMediaInfo()
|| (_activeChat.section == Section::Scheduled)
|| (_activeChat.section == Section::Pinned)) {
// #TODO feed name emoji. // #TODO feed name emoji.
auto text = (_activeChat.section == Section::Scheduled) auto text = (_activeChat.section == Section::Scheduled)
? ((history && history->peer->isSelf()) ? tr::lng_reminder_messages(tr::now)
? tr::lng_reminder_messages(tr::now)
: tr::lng_scheduled_messages(tr::now))
: (_activeChat.section == Section::Pinned)
? _customTitleText
: folder : folder
? folder->chatListName() ? folder->chatListName()
: history->peer->isSelf() : history->peer->isSelf()
@ -459,25 +452,33 @@ void TopBarWidget::paintTopBar(Painter &p) {
(height() - st::historySavedFont->height) / 2, (height() - st::historySavedFont->height) / 2,
width(), width(),
text); 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.setPen(st::dialogsNameFg);
p.setFont(st::semiboldFont);
p.drawTextLeft( Ui::Text::String textStr;
nameleft, textStr.setText(
nametop, st::semiboldTextStyle,
width(), (_activeChat.section == Section::Replies
tr::lng_manage_discussion_group(tr::now)); ? 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); p.setFont(st::dialogsTextFont);
if (!paintConnectingState(p, nameleft, statustop, width()) if (!paintConnectingState(p, nameleft, statustop, width())
&& !paintSendAction( && (_activeChat.section != Section::Replies
p, || !paintSendAction(
nameleft, p,
statustop, nameleft,
availableWidth, statustop,
width(), availableWidth,
st::historyStatusFgTyping, width(),
now)) { st::historyStatusFgTyping,
now))) {
p.setPen(st::historyStatusFg); p.setPen(st::historyStatusFg);
p.drawTextLeft(nameleft, statustop, width(), _customTitleText); p.drawTextLeft(nameleft, statustop, width(), _customTitleText);
} }