Added option for chat names in titles of single peer windows.

This commit is contained in:
23rd 2022-12-05 15:21:55 +03:00
parent e2205c7251
commit cc0b1b1d54
3 changed files with 24 additions and 6 deletions

View file

@ -138,6 +138,7 @@ void SetupExperimental(
addToggle(ChatHelpers::kOptionTabbedPanelShowOnClick); addToggle(ChatHelpers::kOptionTabbedPanelShowOnClick);
addToggle(Window::kOptionViewProfileInChatsListContextMenu); addToggle(Window::kOptionViewProfileInChatsListContextMenu);
addToggle(Dialogs::kOptionCtrlClickChatNewWindow); addToggle(Dialogs::kOptionCtrlClickChatNewWindow);
addToggle(Window::kOptionShowChatNameInNewWindow);
addToggle(Ui::GL::kOptionAllowLinuxNvidiaOpenGL); addToggle(Ui::GL::kOptionAllowLinuxNvidiaOpenGL);
addToggle(Ui::kOptionUseSmallMsgBubbleRadius); addToggle(Ui::kOptionUseSmallMsgBubbleRadius);
addToggle(Media::Player::kOptionDisableAutoplayNext); addToggle(Media::Player::kOptionDisableAutoplayNext);

View file

@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h" #include "main/main_session_settings.h"
#include "base/options.h"
#include "base/call_delayed.h" #include "base/call_delayed.h"
#include "base/crc32hash.h" #include "base/crc32hash.h"
#include "ui/toast/toast.h" #include "ui/toast/toast.h"
@ -48,8 +49,16 @@ namespace {
constexpr auto kSaveWindowPositionTimeout = crl::time(1000); constexpr auto kSaveWindowPositionTimeout = crl::time(1000);
base::options::toggle ShowChatNameInNewWindow({
.id = kOptionShowChatNameInNewWindow,
.name = "Show chat name in title of separated windows",
.description = "",
});
} // namespace } // namespace
const char kOptionShowChatNameInNewWindow[] = "show-chat-name-in-new-window";
const QImage &Logo() { const QImage &Logo() {
static const auto result = QImage(u":/gui/art/logo_256.png"_q); static const auto result = QImage(u":/gui/art/logo_256.png"_q);
return result; return result;
@ -798,12 +807,18 @@ void MainWindow::updateUnreadCounter() {
} }
const auto counter = Core::App().unreadBadge(); const auto counter = Core::App().unreadBadge();
const auto additionalName = singlePeer() if (ShowChatNameInNewWindow.value()) {
? u" %1 %2"_q.arg(QChar(8212), singlePeer()->name()) const auto additionalName = singlePeer()
: QString(); ? u" %1 %2"_q.arg(QChar(8212), singlePeer()->name())
setTitle(((counter > 0) : QString();
? u"Telegram (%1)"_q.arg(counter) setTitle(((counter > 0)
: u"Telegram"_q) + additionalName); ? 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(); Core::App().tray().updateIconCounters();
unreadCounterChangedHook(); unreadCounterChangedHook();

View file

@ -55,6 +55,8 @@ struct CounterLayerArgs {
[[nodiscard]] QImage GenerateCounterLayer(CounterLayerArgs &&args); [[nodiscard]] QImage GenerateCounterLayer(CounterLayerArgs &&args);
[[nodiscard]] QImage WithSmallCounter(QImage image, CounterLayerArgs &&args); [[nodiscard]] QImage WithSmallCounter(QImage image, CounterLayerArgs &&args);
extern const char kOptionShowChatNameInNewWindow[];
class MainWindow : public Ui::RpWindow { class MainWindow : public Ui::RpWindow {
public: public:
explicit MainWindow(not_null<Controller*> controller); explicit MainWindow(not_null<Controller*> controller);