From bb438880e3f1b54de022ef09b864a746c157a7e2 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 1 Apr 2024 04:35:54 +0300 Subject: [PATCH] Added ability to view all of user's own groups. --- .../SourceFiles/window/window_main_menu.cpp | 74 ++++++++++++------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index f15aeb484..d94e1648b 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -52,6 +52,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_account.h" #include "main/main_domain.h" #include "mtproto/mtproto_config.h" +#include "data/data_chat.h" #include "data/data_document_media.h" #include "data/data_folder.h" #include "data/data_session.h" @@ -111,7 +112,8 @@ public: not_null AddMyChannelsBox( not_null button, - not_null controller) { + not_null controller, + bool chats) { button->setAcceptBoth(true); const auto myChannelsBox = [=](not_null box) { @@ -126,16 +128,21 @@ not_null AddMyChannelsBox( public: using Ui::SettingsButton::SettingsButton; - void setPeer(not_null c) { - _text.setText(st::defaultPeerListItem.nameStyle, c->name()); + void setPeer(not_null p) { + const auto c = p->asChannel(); + const auto g = p->asChat(); + _text.setText(st::defaultPeerListItem.nameStyle, p->name()); + const auto count = c ? c->membersCount() : g->count; _status.setText( st::defaultTextStyle, - !c->username().isEmpty() - ? ('@' + c->username()) - : tr::lng_chat_status_subscribers( + !p->userName().isEmpty() + ? ('@' + p->userName()) + : count + ? tr::lng_chat_status_subscribers( tr::now, lt_count, - c->membersCount())); + count) + : QString()); } int resizeGetHeight(int) override { @@ -168,34 +175,42 @@ not_null AddMyChannelsBox( }; - controller->session().data().enumerateBroadcasts([&]( - not_null channel) { - if (!channel->amCreator()) { - return; - } - + const auto add = [&](not_null peer) { const auto row = box->addRow( object_ptr