From d6c188d642a910ff6a12385b9c7c5731b5729044 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 23 Dec 2022 14:34:49 +0400 Subject: [PATCH] Respect hidden_members_group_size_min in group edit. --- .../boxes/peers/edit_members_visible.cpp | 17 +++++++++++++++++ .../boxes/peers/edit_participants_box.cpp | 2 +- .../menu/menu_antispam_validator.cpp | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp b/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp index 02d6b12ad..5ef44326a 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp @@ -14,16 +14,33 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/slide_wrap.h" #include "ui/widgets/buttons.h" #include "settings/settings_common.h" +#include "main/main_account.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "apiwrap.h" #include "lang/lang_keys.h" #include "styles/style_info.h" +namespace { + +[[nodiscard]] int EnableHideMembersMin(not_null channel) { + return channel->session().account().appConfig().get( + u"hidden_members_group_size_min"_q, + 100); +} + +} // namespace + [[nodiscard]] object_ptr CreateMembersVisibleButton( not_null megagroup) { auto result = object_ptr((QWidget*)nullptr); const auto container = result.data(); + const auto min = EnableHideMembersMin(megagroup); + if (!megagroup->canBanMembers() || megagroup->membersCount() < min) { + return { nullptr }; + } + struct State { rpl::event_stream toggled; }; diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp index 3c4b1715a..81125811a 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp @@ -1189,7 +1189,7 @@ void ParticipantsBoxController::prepare() { Unexpected("Role in ParticipantsBoxController::prepare()"); }(); if (const auto megagroup = _peer->asMegagroup()) { - if ((_role == Role::Members) && megagroup->canBanMembers()) { + if (_role == Role::Members) { delegate()->peerListSetAboveWidget(CreateMembersVisibleButton( megagroup)); } else if ((_role == Role::Admins) diff --git a/Telegram/SourceFiles/menu/menu_antispam_validator.cpp b/Telegram/SourceFiles/menu/menu_antispam_validator.cpp index f07a86d9b..bb48448a6 100644 --- a/Telegram/SourceFiles/menu/menu_antispam_validator.cpp +++ b/Telegram/SourceFiles/menu/menu_antispam_validator.cpp @@ -85,7 +85,7 @@ object_ptr AntiSpamValidator::createButton() const { const auto updateLocked = [=] { const auto min = EnableAntiSpamMinMembers(channel); - const auto locked = (channel->membersCount() <= min); + const auto locked = (channel->membersCount() < min); state->locked = locked; button->setToggleLocked(locked); };