Skip to content

Commit

Permalink
Improved title for separated windows with shared media.
Browse files Browse the repository at this point in the history
  • Loading branch information
23rd committed Jan 30, 2025
1 parent f89bac7 commit 97c4e79
Showing 1 changed file with 48 additions and 1 deletion.
49 changes: 48 additions & 1 deletion Telegram/SourceFiles/window/main_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,47 @@ base::options::toggle OptionDisableTouchbar({
.restartRequired = true,
});

} // namespace.
[[nodiscard]] QString TitleFromSeparateId(
const Core::WindowTitleContent &settings,
const SeparateId &id) {
if (id.sharedMedia == SeparateSharedMediaType::None
|| !id.sharedMediaPeer()) {
return QString();
}
const auto result = (id.sharedMedia == SeparateSharedMediaType::Photos)
? tr::lng_media_type_photos(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::Videos)
? tr::lng_media_type_videos(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::Files)
? tr::lng_media_type_files(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::Audio)
? tr::lng_media_type_songs(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::Links)
? tr::lng_media_type_links(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::GIF)
? tr::lng_media_type_gifs(tr::now)
: (id.sharedMedia == SeparateSharedMediaType::Voices)
? tr::lng_media_type_audios(tr::now)
: QString();

if (settings.hideChatName) {
return result;
}
const auto peer = id.sharedMediaPeer();
const auto topicRootId = id.sharedMediaTopicRootId();
const auto topic = topicRootId
? peer->forumTopicFor(topicRootId)
: nullptr;
const auto name = topic
? topic->title()
: peer->isSelf()
? tr::lng_saved_messages(tr::now)
: peer->name();
const auto wrapped = st::wrap_rtl(name);
return name + u" @ "_q + result;
}

} // namespace

const char kOptionNewWindowsSizeAsFirst[] = "new-windows-size-as-first";
const char kOptionDisableTouchbar[] = "touchbar-disabled";
Expand Down Expand Up @@ -862,6 +902,13 @@ void MainWindow::updateTitle() {
&& Core::App().domain().accountsAuthedCount() > 1)
? st::wrap_rtl(session->authedName())
: QString();
const auto separateIdTitle = session
? TitleFromSeparateId(settings, session->windowId())
: QString();
if (!separateIdTitle.isEmpty()) {
setTitle(separateIdTitle);
return;
}
const auto key = (session && !settings.hideChatName)
? session->activeChatCurrent()
: Dialogs::Key();
Expand Down

0 comments on commit 97c4e79

Please sign in to comment.