diff --git a/Telegram/Resources/icons/info/edit/links_reactivate.png b/Telegram/Resources/icons/info/edit/links_reactivate.png new file mode 100644 index 000000000..f8780df55 Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_reactivate.png differ diff --git a/Telegram/Resources/icons/info/edit/links_reactivate@2x.png b/Telegram/Resources/icons/info/edit/links_reactivate@2x.png new file mode 100644 index 000000000..9d7e6484d Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_reactivate@2x.png differ diff --git a/Telegram/Resources/icons/info/edit/links_reactivate@3x.png b/Telegram/Resources/icons/info/edit/links_reactivate@3x.png new file mode 100644 index 000000000..39a00a246 Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_reactivate@3x.png differ diff --git a/Telegram/Resources/icons/info/edit/links_revoked.png b/Telegram/Resources/icons/info/edit/links_revoked.png new file mode 100644 index 000000000..89b361901 Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_revoked.png differ diff --git a/Telegram/Resources/icons/info/edit/links_revoked@2x.png b/Telegram/Resources/icons/info/edit/links_revoked@2x.png new file mode 100644 index 000000000..3c0f6d6bb Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_revoked@2x.png differ diff --git a/Telegram/Resources/icons/info/edit/links_revoked@3x.png b/Telegram/Resources/icons/info/edit/links_revoked@3x.png new file mode 100644 index 000000000..31bde4c44 Binary files /dev/null and b/Telegram/Resources/icons/info/edit/links_revoked@3x.png differ diff --git a/Telegram/Resources/icons/info/edit/roundbtn_plus.png b/Telegram/Resources/icons/info/edit/roundbtn_plus.png index 86138484e..1f35ddbdb 100644 Binary files a/Telegram/Resources/icons/info/edit/roundbtn_plus.png and b/Telegram/Resources/icons/info/edit/roundbtn_plus.png differ diff --git a/Telegram/Resources/icons/info/edit/roundbtn_plus@2x.png b/Telegram/Resources/icons/info/edit/roundbtn_plus@2x.png index f2772af06..7d2e67a9d 100644 Binary files a/Telegram/Resources/icons/info/edit/roundbtn_plus@2x.png and b/Telegram/Resources/icons/info/edit/roundbtn_plus@2x.png differ diff --git a/Telegram/Resources/icons/info/edit/roundbtn_plus@3x.png b/Telegram/Resources/icons/info/edit/roundbtn_plus@3x.png index 30bd16f13..2b9621f36 100644 Binary files a/Telegram/Resources/icons/info/edit/roundbtn_plus@3x.png and b/Telegram/Resources/icons/info/edit/roundbtn_plus@3x.png differ diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 262e1e2e4..115a19773 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1229,11 +1229,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_group_invite_custom_limit" = "Enter custom limit"; "lng_group_invite_usage_any" = "No limit"; "lng_group_invite_usage_custom" = "Custom"; -"lng_group_invite_other_title" = "Invite links created by other admins"; +"lng_group_invite_other_title" = "Links created by other admins"; "lng_group_invite_other_count#one" = "{count} invite link"; "lng_group_invite_other_count#other" = "{count} invite links"; "lng_group_invite_permanent_other" = "Permanent link of this admin"; -"lng_group_invite_other_list" = "Invite links created by this admin"; +"lng_group_invite_other_list" = "Links created by this admin"; "lng_group_invite_expired_about" = "The time limit for this link has expired."; "lng_group_invite_used_about" = "This link reached its usage limit."; "lng_group_invite_can_join_via_link#one" = "{count} person can join via this link."; diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp index 9688f6d16..0868a58ea 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp @@ -865,9 +865,11 @@ void ShowInviteLinkBox( return; } const auto now = base::unixtime::now(); - box->setTitle(IsExpiredLink(link, now) + box->setTitle(link.revoked + ? tr::lng_manage_peer_link_invite() + : IsExpiredLink(link, now) ? tr::lng_manage_peer_link_expired() - : (link.permanent && !link.revoked) + : link.permanent ? tr::lng_manage_peer_link_permanent() : tr::lng_manage_peer_link_invite()); }, box->lifetime()); diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp index 64e71c489..9b31ab49b 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp @@ -691,6 +691,7 @@ void LinksController::rowPaintIcon( } Unexpected("Color in LinksController::rowPaintIcon."); }(); + const auto stroke = st::inviteLinkIconStroke; auto &icon = _icons[int(color)]; if (icon.isNull()) { icon = QImage( @@ -703,12 +704,17 @@ void LinksController::rowPaintIcon( p.setPen(Qt::NoPen); p.setBrush(*bg); auto hq = PainterHighQualityEnabler(p); - p.drawEllipse(0, 0, inner, inner); - st::inviteLinkIcon.paintInCenter(p, { 0, 0, inner, inner }); + auto rect = QRect(0, 0, inner, inner); + if (color == Color::Expiring || color == Color::ExpireSoon) { + rect = rect.marginsRemoved({ stroke, stroke, stroke, stroke }); + } + p.drawEllipse(rect); + (color == Color::Revoked + ? st::inviteLinkRevokedIcon + : st::inviteLinkIcon).paintInCenter(p, { 0, 0, inner, inner }); } p.drawImage(x + skip, y + skip, icon); if (progress >= 0. && progress < 1.) { - const auto stroke = st::inviteLinkIconStroke; auto hq = PainterHighQualityEnabler(p); auto pen = QPen((*bg)->c); pen.setWidth(stroke); @@ -716,7 +722,7 @@ void LinksController::rowPaintIcon( p.setPen(pen); p.setBrush(Qt::NoBrush); - const auto margins = 1.5 * stroke; + const auto margins = .5 * stroke; p.drawArc(QRectF(x + skip, y + skip, inner, inner).marginsAdded({ margins, margins, diff --git a/Telegram/SourceFiles/info/info.style b/Telegram/SourceFiles/info/info.style index 6e5e7dd24..720bdf1b5 100644 --- a/Telegram/SourceFiles/info/info.style +++ b/Telegram/SourceFiles/info/info.style @@ -868,7 +868,10 @@ inviteLinkShare: RoundButton(inviteLinkCopy) { icon: icon {{ "info/edit/links_share", activeButtonFg }}; iconOver: icon {{ "info/edit/links_share", activeButtonFgOver }}; } -inviteLinkReactivate: inviteLinkShare; +inviteLinkReactivate: RoundButton(inviteLinkCopy) { + icon: icon {{ "info/edit/links_reactivate", activeButtonFg }}; + iconOver: icon {{ "info/edit/links_reactivate", activeButtonFgOver }}; +} inviteLinkUserpics: GroupCallUserpics { size: 28px; shift: 6px; @@ -879,7 +882,7 @@ inviteLinkUserpicsSkip: 8px; inviteLinkJoinedFont: font(14px); inviteLinkJoinedRowPadding: margins(0px, 18px, 0px, 8px); -inviteLinkCreateSkip: 8px; +inviteLinkCreateSkip: 10px; inviteLinkCreate: SettingsButton(defaultSettingsButton) { textFg: lightButtonFg; textFgOver: lightButtonFgOver; @@ -889,7 +892,7 @@ inviteLinkCreate: SettingsButton(defaultSettingsButton) { font: semiboldFont; height: 20px; - padding: margins(58px, 7px, 12px, 5px); + padding: margins(60px, 7px, 12px, 5px); toggle: infoProfileToggle; toggleOver: infoProfileToggleOver; @@ -898,28 +901,35 @@ inviteLinkCreate: SettingsButton(defaultSettingsButton) { ripple: defaultRippleAnimation; } inviteLinkCreateIcon: icon {{ "info/edit/roundbtn_plus", windowFgActive }}; -inviteLinkCreateIconSize: 20px; +inviteLinkCreateIconSize: 18px; inviteLinkListItem: PeerListItem(defaultPeerListItem) { button: OutlineButton(defaultPeerListButton) { font: normalFont; padding: margins(11px, 5px, 11px, 5px); } height: 52px; - photoPosition: point(8px, 6px); - namePosition: point(58px, 6px); - statusPosition: point(58px, 25px); - photoSize: 40px; + photoPosition: point(9px, 4px); + namePosition: point(60px, 6px); + statusPosition: point(60px, 26px); + photoSize: 44px; } inviteLinkList: PeerList(defaultPeerList) { item: inviteLinkListItem; - padding: margins(0px, 4px, 0px, 4px); + padding: margins(0px, 4px, 0px, 0px); } -inviteLinkAdminsList: PeerList(peerListBox) { - padding: margins(0px, 4px, 0px, membersMarginBottom); +inviteLinkAdminsList: PeerList(inviteLinkList) { + item: PeerListItem(inviteLinkListItem) { + photoPosition: point(16px, 9px); + namePosition: point(62px, 6px); + statusPosition: point(62px, 26px); + photoSize: 34px; + } + padding: margins(0px, 5px, 0px, 6px); } inviteLinkIconSkip: 7px; inviteLinkIconStroke: 2px; inviteLinkIcon: icon {{ "info/edit/links_link", mediaviewFileExtFg }}; +inviteLinkRevokedIcon: icon {{ "info/edit/links_revoked", mediaviewFileExtFg }}; inviteLinkThreeDotsSkip: 12px; -inviteLinkRevokedTitlePadding: margins(22px, 16px, 10px, 9px); +inviteLinkRevokedTitlePadding: margins(22px, 16px, 10px, 4px); inviteLinkLimitMargin: margins(22px, 8px, 22px, 8px);