From cc0b1b1d54ae53289d740491163b8f46e33f69de Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 5 Dec 2022 15:21:55 +0300 Subject: [PATCH] Added option for chat names in titles of single peer windows. --- .../settings/settings_experimental.cpp | 1 + Telegram/SourceFiles/window/main_window.cpp | 27 ++++++++++++++----- Telegram/SourceFiles/window/main_window.h | 2 ++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/settings/settings_experimental.cpp b/Telegram/SourceFiles/settings/settings_experimental.cpp index 8b9b82f1f5..036173d449 100644 --- a/Telegram/SourceFiles/settings/settings_experimental.cpp +++ b/Telegram/SourceFiles/settings/settings_experimental.cpp @@ -138,6 +138,7 @@ void SetupExperimental( addToggle(ChatHelpers::kOptionTabbedPanelShowOnClick); addToggle(Window::kOptionViewProfileInChatsListContextMenu); addToggle(Dialogs::kOptionCtrlClickChatNewWindow); + addToggle(Window::kOptionShowChatNameInNewWindow); addToggle(Ui::GL::kOptionAllowLinuxNvidiaOpenGL); addToggle(Ui::kOptionUseSmallMsgBubbleRadius); addToggle(Media::Player::kOptionDisableAutoplayNext); diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index 7de774256f..1234abe6f8 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "main/main_session.h" #include "main/main_session_settings.h" +#include "base/options.h" #include "base/call_delayed.h" #include "base/crc32hash.h" #include "ui/toast/toast.h" @@ -48,8 +49,16 @@ namespace { constexpr auto kSaveWindowPositionTimeout = crl::time(1000); +base::options::toggle ShowChatNameInNewWindow({ + .id = kOptionShowChatNameInNewWindow, + .name = "Show chat name in title of separated windows", + .description = "", +}); + } // namespace +const char kOptionShowChatNameInNewWindow[] = "show-chat-name-in-new-window"; + const QImage &Logo() { static const auto result = QImage(u":/gui/art/logo_256.png"_q); return result; @@ -798,12 +807,18 @@ void MainWindow::updateUnreadCounter() { } const auto counter = Core::App().unreadBadge(); - const auto additionalName = singlePeer() - ? u" %1 %2"_q.arg(QChar(8212), singlePeer()->name()) - : QString(); - setTitle(((counter > 0) - ? u"Telegram (%1)"_q.arg(counter) - : u"Telegram"_q) + additionalName); + if (ShowChatNameInNewWindow.value()) { + const auto additionalName = singlePeer() + ? u" %1 %2"_q.arg(QChar(8212), singlePeer()->name()) + : QString(); + setTitle(((counter > 0) + ? u"Telegram (%1)"_q.arg(counter) + : u"Telegram"_q) + additionalName); + } else { + setTitle((counter > 0) + ? u"Telegram (%1)"_q.arg(counter) + : u"Telegram"_q); + } Core::App().tray().updateIconCounters(); unreadCounterChangedHook(); diff --git a/Telegram/SourceFiles/window/main_window.h b/Telegram/SourceFiles/window/main_window.h index 9bb035df0c..e1a2683625 100644 --- a/Telegram/SourceFiles/window/main_window.h +++ b/Telegram/SourceFiles/window/main_window.h @@ -55,6 +55,8 @@ struct CounterLayerArgs { [[nodiscard]] QImage GenerateCounterLayer(CounterLayerArgs &&args); [[nodiscard]] QImage WithSmallCounter(QImage image, CounterLayerArgs &&args); +extern const char kOptionShowChatNameInNewWindow[]; + class MainWindow : public Ui::RpWindow { public: explicit MainWindow(not_null controller);