[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,
controller,
ComposeControls::Mode::Scheduled,
SendMenu::Type::Disabled))
SendMenu::Type::PreviewOnly))
, _scrollDown(
_scroll,
controller->chatStyle()->value(lifetime(), st::historyToDown)) {
@ -127,6 +127,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);
_topBar->move(0, 0);

View file

@ -432,17 +432,10 @@ void TopBarWidget::paintTopBar(Painter &p) {
const auto now = crl::now();
const auto history = _activeChat.key.history();
const auto folder = _activeChat.key.folder();
if (folder
|| history->peer->sharedMediaInfo()
|| (_activeChat.section == Section::Scheduled)
|| (_activeChat.section == Section::Pinned)) {
if (folder || history->peer->sharedMediaInfo()) {
// #TODO feed name emoji.
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()
@ -459,25 +452,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);
}