diff --git a/Telegram/Resources/icons/info/edit/links_subscription.svg b/Telegram/Resources/icons/info/edit/links_subscription.svg new file mode 100644 index 0000000000..2d2d0c3fb3 --- /dev/null +++ b/Telegram/Resources/icons/info/edit/links_subscription.svg @@ -0,0 +1,36 @@ + + + General / menu_incomes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Telegram/Resources/qrc/telegram/telegram.qrc b/Telegram/Resources/qrc/telegram/telegram.qrc index e83243d338..c065c5fad7 100644 --- a/Telegram/Resources/qrc/telegram/telegram.qrc +++ b/Telegram/Resources/qrc/telegram/telegram.qrc @@ -30,6 +30,7 @@ ../../art/topic_icons/red.svg ../../art/topic_icons/gray.svg ../../art/topic_icons/general.svg + ../../icons/info/edit/links_subscription.svg ../../icons/calls/hands.lottie diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp index 5952171aec..fdbc07dd5c 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" #include "ui/painter.h" +#include "ui/rect.h" #include "ui/vertical_list.h" #include "lang/lang_keys.h" #include "ui/boxes/confirm_box.h" @@ -31,6 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_layers.h" // st::boxDividerLabel #include "styles/style_menu_icons.h" +#include + namespace { enum class Color { @@ -39,6 +42,7 @@ enum class Color { ExpireSoon, Expired, Revoked, + Subscription, Count, }; @@ -145,6 +149,8 @@ private: ? Color::ExpireSoon : (progress >= 0.) ? Color::Expiring + : link.subscription + ? Color::Subscription : Color::Permanent; } @@ -659,6 +665,7 @@ void LinksController::rowPaintIcon( case Color::ExpireSoon: return &st::msgFile4Bg; case Color::Expired: return &st::msgFile3Bg; case Color::Revoked: return &st::windowSubTextFg; + case Color::Subscription: return &st::msgFile2Bg; } Unexpected("Color in LinksController::rowPaintIcon."); }(); @@ -676,15 +683,25 @@ void LinksController::rowPaintIcon( p.setBrush(*bg); { auto hq = PainterHighQualityEnabler(p); - auto rect = QRect(0, 0, inner, inner); - if (color == Color::Expiring || color == Color::ExpireSoon) { - rect = rect.marginsRemoved({ stroke, stroke, stroke, stroke }); - } + const auto rect = QRect(0, 0, inner, inner) + - ((color == Color::Expiring || color == Color::ExpireSoon) + ? Margins(stroke) + : Margins(0)); p.drawEllipse(rect); } - (color == Color::Revoked - ? st::inviteLinkRevokedIcon - : st::inviteLinkIcon).paintInCenter(p, { 0, 0, inner, inner }); + if (color == Color::Subscription) { + auto svg = QSvgRenderer(u":/gui/links_subscription.svg"_q); + const auto r = QRect( + (inner - st::inviteLinkSubscriptionSize) / 2, + (inner - st::inviteLinkSubscriptionSize) / 2, + st::inviteLinkSubscriptionSize, + st::inviteLinkSubscriptionSize); + svg.render(&p, r); + } else { + (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.) { diff --git a/Telegram/SourceFiles/info/info.style b/Telegram/SourceFiles/info/info.style index 1eaa10069e..db1cd8b192 100644 --- a/Telegram/SourceFiles/info/info.style +++ b/Telegram/SourceFiles/info/info.style @@ -986,6 +986,7 @@ inviteLinkRevokedIcon: icon {{ "info/edit/links_revoked", mediaviewFileExtFg }}; inviteLinkThreeDotsSkip: 12px; inviteLinkRevokedTitlePadding: margins(22px, 16px, 10px, 4px); inviteLinkLimitMargin: margins(22px, 8px, 22px, 8px); +inviteLinkSubscriptionSize: 18px; inviteLinkQrPixel: 8px; inviteLinkQrSkip: 24px;