From 143976d1bbf5645a6e5fdff620efbfc8de3a61ea Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 23 Jun 2026 12:21:30 +0400 Subject: [PATCH] Show visible-only-to-members line in pending requests. --- Telegram/Resources/icons/chat/mini_hidden.svg | 6 +++++ Telegram/SourceFiles/boxes/boxes.style | 12 +++++++--- .../peers/community_pending_requests_box.cpp | 24 +++++++++++++++---- 3 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 Telegram/Resources/icons/chat/mini_hidden.svg diff --git a/Telegram/Resources/icons/chat/mini_hidden.svg b/Telegram/Resources/icons/chat/mini_hidden.svg new file mode 100644 index 0000000000..1019c07bc6 --- /dev/null +++ b/Telegram/Resources/icons/chat/mini_hidden.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Telegram/SourceFiles/boxes/boxes.style b/Telegram/SourceFiles/boxes/boxes.style index 7c57b6a044..cf1daa2734 100644 --- a/Telegram/SourceFiles/boxes/boxes.style +++ b/Telegram/SourceFiles/boxes/boxes.style @@ -1060,7 +1060,7 @@ requestPeerRestriction: FlatLabel(defaultFlatLabel) { } requestsBoxItem: PeerListItem(peerListBoxItem) { - height: 104px; + height: 124px; namePosition: point(74px, 26px); button: OutlineButton(defaultPeerListButton) { textBg: contactsBg; @@ -1102,7 +1102,7 @@ requestsRejectButton: RoundButton(defaultLightButton) { height: 30px; textTop: 6px; } -requestAcceptPosition: point(71px, 70px); +requestAcceptPosition: point(71px, 90px); requestButtonsSkip: 9px; requestSuggestStyle: TextStyle(defaultTextStyle) { font: contactsStatusFont; @@ -1111,7 +1111,7 @@ requestSuggestPosition: point(74px, 6px); requestMembersStyle: TextStyle(defaultTextStyle) { font: contactsStatusFont; } -requestMembersPosition: point(74px, 48px); +requestMembersPosition: point(74px, 46px); requestMembersIcon: IconEmoji { icon: icon{{ "chat/mini_subscribers", contactsStatusFg }}; padding: margins(0px, 3px, 4px, 0px); @@ -1120,6 +1120,12 @@ requestMembersIcon: IconEmoji { requestSuggestBadgeSize: 18px; requestSuggestBadgeBorder: 1px; requestSuggestBadgeSkip: point(0px, 0px); +requestOnlyMembersPosition: point(74px, 66px); +requestVisibleIcon: IconEmoji { + icon: icon{{ "chat/mini_hidden", contactsStatusFg }}; + padding: margins(0px, 2px, 4px, 0px); + useIconColor: false; +} ringtonesBoxButton: SettingsButton(defaultSettingsButton) { textFg: lightButtonFg; diff --git a/Telegram/SourceFiles/boxes/peers/community_pending_requests_box.cpp b/Telegram/SourceFiles/boxes/peers/community_pending_requests_box.cpp index dd5999874c..4a82c7d0d9 100644 --- a/Telegram/SourceFiles/boxes/peers/community_pending_requests_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/community_pending_requests_box.cpp @@ -246,6 +246,7 @@ private: UserData *_requestedBy = nullptr; Ui::Text::String _suggest; Ui::Text::String _members; + Ui::Text::String _onlyMembers; int _userWidth = 0; std::unique_ptr _acceptRipple; std::unique_ptr _rejectRipple; @@ -278,11 +279,6 @@ Row::Row( lt_user, tr::link(user), tr::marked); - if (!request.visible) { - suggest.append(QString::fromUtf8(" \xE2\x80\xA2 ")); - suggest.append( - tr::lng_community_request_only_members(tr::now)); - } _suggest.setMarkedText( st::requestSuggestStyle, suggest, @@ -302,6 +298,15 @@ Row::Row( Ui::NameTextOptions()); } + if (!request.visible) { + auto text = Ui::Text::IconEmoji(&st::requestVisibleIcon) + .append(tr::lng_community_request_only_members(tr::now)); + _onlyMembers.setMarkedText( + st::requestMembersStyle, + text, + Ui::NameTextOptions()); + } + _chatUserpic = Ui::MakeUserpicThumbnail(request.peer); if (request.requestedBy) { _suggestUserpic = Ui::MakeUserpicThumbnail(request.requestedBy); @@ -381,6 +386,15 @@ void Row::paintStatusText( .elisionLines = 1, }); } + if (!_onlyMembers.isEmpty()) { + _onlyMembers.draw(p, { + .position = st::requestOnlyMembersPosition, + .availableWidth = availableWidth, + .palette = &st::defaultTextPalette, + .now = now, + .elisionLines = 1, + }); + } } void Row::setPending(bool pending) {