From 1ab0f840f35b2ab51f353a2ccdd90705dc025ca8 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 30 Dec 2021 16:07:52 +0300 Subject: [PATCH] Use reactions icon in context menu if more than 1 reaction type. --- .../icons/info/edit/group_manage_reactions.png | Bin 0 -> 1016 bytes .../info/edit/group_manage_reactions@2x.png | Bin 0 -> 2029 bytes .../info/edit/group_manage_reactions@3x.png | Bin 0 -> 2983 bytes Telegram/SourceFiles/api/api_who_reacted.cpp | 4 +++- Telegram/SourceFiles/info/info.style | 2 +- Telegram/SourceFiles/ui/chat/chat.style | 3 +++ .../ui/controls/who_reacted_context_action.cpp | 10 ++++++++-- .../ui/controls/who_reacted_context_action.h | 2 +- 8 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 Telegram/Resources/icons/info/edit/group_manage_reactions.png create mode 100644 Telegram/Resources/icons/info/edit/group_manage_reactions@2x.png create mode 100644 Telegram/Resources/icons/info/edit/group_manage_reactions@3x.png diff --git a/Telegram/Resources/icons/info/edit/group_manage_reactions.png b/Telegram/Resources/icons/info/edit/group_manage_reactions.png new file mode 100644 index 0000000000000000000000000000000000000000..14265081ad4a078bb9fdb827dded07329eb5ae9d GIT binary patch literal 1016 zcmVPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$?Vo5|nR7ef&l}RYAVHn4qL#FP= z!cd5XAy(v+g(+E>5+yPu-AKtnN|H!K$ik2zG9(*ANfZky3qzqO7VLCR$W%mT?)~we zgw9s8u;q!Dl#&X#OUbg;o;%2v9bL8 zd>I|-kdKcKTG!Xt#l^*Xz5e<6+0oHatyT{V36oA*)*TLe*y)U4CZy<`v(Ihh|DXFZij1|Y}?d{D@EG{k* zEh;LahKGj-cx7dUJ}fMZUPOa~gTWs*u>ovsMn(oC*f%#f{r&x5J3G7j`uev_dwYAZ zpPwJ2-rwH`lLDTantJ1y0v8vT$Hzxje|vkIJC&K43B%Xd_ww>`bad2|ZM4tM&d_yt zcV|}sr>CdJh}kzHA_4|$&4KCc?4(9kRu(K*SJ$qtE;G8pF*7qmR&sJOHkT31dP zoSg3O@0me-d_0WC#zt-yS6Z5F^foj!AX;5rjbn0h5}cl%ZVZ}zD=RBu+}+)Y8Wj~4 z$H&KFxy`r+M{aH|DI5yys;Vk*Q&ZDNzTnJu3 z6Q+XM+}w-`ZFY7xEiKK<%PTN2u(Y(46O40we4Lj&ARvIp3Ugv&LP1V4oS2w+a&q!g zXKCFSAafylzbf_M!jMHHOQ&d!|irKKhAD$g<_jfsg7IVB|}T+f=C8h#!M mDqjvO`~$wM`00001b5ch_0Itp) z=>Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuDS4l)cRA>e5nOA64O%TTudqs^J z5d~Z9Vh11WT?|oCL9u}%Q4vcd=%XTnz9{yJ6;ZK(hz1)LP-AZ>8iT~%d++fFi~nzO zt_kPdBoBU^Jm{R+={q|!yEi5#{0k!xMj(tp7=bVXVFbbmL>+Dj~+del9F1r zYL%Uxec{4|J$v>XJ9aFeG7FKtM2QmEI(YElX3d(##l@{#w+_2Ke=Aq6EMLBSAsP{# z=wii+&73*&%a<=Q_t&pqf<3^cOP8utsS=%{pj^IEs9d>n$B!Rx-MY1Z>DR7Z>)yTl zvuDpNOY`Q<5yCb;fByXZ`SbVh-?yuU2rpm0+!JH_dFs@uPMtb+?b`M9>C+Z}{m?RKIGo6VN2tgIb7c6|8o!CCX;$B+2J4p=L1-MUqyMvZaf#{K;H)8YlMUAwl>9hf+AqV%PwrK3YGQh)pI`JK%F{u zWJJl5CHL*yCwhQ8ckX=s`qg4QaIapy#9k=C_U+rHGC4U}I%?Oh?R5@uGN7LA3uHs|M>A^>qGJ4#dq%9 zX&D_na^y(I&QaDXURADKSz;-7iHV8bx^)vKdSK3+Ia1>QPF{x&9jrv`c0N3M^vL>v z9ox2T^RUxH#Cz`CIjv%`@Y?Ws^X3T|4UmwKfVtA~{{4G*5Wju<*12C-1D zJw6mIT6FW~&5{7nzkh!*E?TrmOLQ2AXU|nIP*kf{Ezt)C#*7&w1=p`%uT-g0@7}## z(&HEtgq2voe*M4tK$YCIX_Mqko;+Dx!-fqLe*gac!e6;^MffRGrU)Mxuo05twr$(e zgHS;6VFa>58#HL(eBglET*8M98#Xwb=Fgum7WPeszJ2>v4PnxxNy2a0vPJZPf!VWX zOAv=a{G=AGfF&|&$dDnz12k;d@bl--EJgaTe*JpzoNP-^p9bmvbUfO(Z~q6Eee>o` zOCJm#FkpZLaR6GjY$^U~)v8^-e3?~z7&~^X@Bob(HF7>=W@cKv+Xvc+Mef?QODdEt zWy_Xzhm9r9L&b^}ElU8nLWK%0C7h1euV2%W#m~IS*z9zqrltxH(4^mPD4Ldmfe+u9t1Z$GOuLmL3b$CuDB)G0v}%FBkKV)U`ju|z zsIB(4fL^!A{Z0;0RSk!4kS;3`03IKvPoM5qZTrC+&?JH?}MRVD7Av;(V}qk3L!$ z1uB5V2vS=~J9g}-^+SgaNi}6%_`pEkJ_Ht*lYtWV;>8OY$~dTXx{C1Zw(uU{?`6~y zF|OG3K!uJmlX8#GXBSR$*Sc zbg4CtXI3q7`>{*Wz$kMwy@Ybe>ej6rjjTUB6DCZMH0ps$5bL~5+VbidUj7IO_L>G_gfjuU@s*^EgL3Nus?QKt`GseDX+{1MoptN?FGFBh1sLO=I^dHC*IJ zjT*%R1o3H+czgRBI` zPfNyAoSo+^Wo~e=hmhQ)SbWo_P5boe!z&nRK!qW|{CdFMml5#9i4&F*7`OS!1A2Pd z!i5WI!0+C@^U(YQpWKW&$Nzw#p^0Gx!U%*B2qO?iAdJBOEdsv**5V$$4;oVI00000 LNkvXXu0mjf$A-wD literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/info/edit/group_manage_reactions@3x.png b/Telegram/Resources/icons/info/edit/group_manage_reactions@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f774a2c4f25b920c7e567af0c917150071a69a GIT binary patch literal 2983 zcmai0XH*l)5)KF$fhf614}=_(O7iG_ zv4SQW3Lkx>BA|Q>vPGUKJD}7ZwY34lWFH8ih;#-}{YfD!J6QpMYq=DFYh+9DXDyfV zKT+%4Yyb8CB$nQ@(g6VI!0O5hhJF;gnSYlUX|wb#yJE4}f_&S5qB+ykXR?4aG&E7X zGx0CPV#;PXXKZcB(aYcGn}L!3-|#*j@1BpfRxG!L{2akMRn%?HGP;&!5WZP0<@Epa zKc(Y}@tO_KPd5|_wYSi8&vE4Z@@)V5Ev|(oA3-XOD^6j!)7Ycu7stp~Tnh1|X6*h_ zPc-Aid)=%3pJB1aeF>ZoZMwqEtSc;ArQ9h_P03K`ehJb{VH=IQ=YfOKc%Y_};htCK>y$t6Gp z)RXM5NWbf!)I=10(l64$<)|ma8c z(9?W!0}(Ms@mUYC(h)z#bC$Ei0^Ud^;?oOM-;avIu|3JSuW*JDnL)5L|W1#jj%E7w8Qbh z1JX$WX3I_p9uEHGod~8JCPw%c%jKALdwS9_iwa5L<_gu5 zJ!N=#pEYC3l1@){Odi@yHlVG_G?~aP6qt36@1 zgq3;*yojX3&X%%XoGlmVLXBC)&(?g$Y7HA^6!w$ph>1(-I*8rgj?%eQFE3Q0Z%mF% zBTuc>3~BNwR~N~ocd7nd_~d&g(fo9{NFz0XcvK{vxG~tL+(bQ|3DTi6p$;-L;O?iO zl(6ZdVq8(opwIiPa57it3JK5H71Yh z3D#466Ml2^HW$l;#tbqQlD?=^+?r7Wl?$kik2V`7UogVmXLCeSWp#rN5H{w3P0Zu* zWsnr&^Sr6@X=kR&PUS29(^O*pLbPkrxND*`_^*O3#5t@8m()BvOj11mJ;XCNi9aP97w;!lOD=mfN zpedYDabDpxYEE10VCWP8-n(4s4AY($vMb9x6*X_v6SCHdmQ-8{D-6HE$AR92E=c{% zsm9=EY_^L;kJ^=qluy`qa^RF7zz=Rv8{UE-xch)rp$PFXK7zECwefjSrsyjPG=8QE z_7+`g#~xoB#!pBcNcDOE@i~!34loUVCO5IE#Q{}+w)0IF`-};=Of`gI@v^0c<>FdR zg$y7vyuP2A30rFQG=&da-XvB`m4>Rd^IDVNKc!MFYxatoyr9Tk-xA^ZmULI(-gH?e z*AzdFlXF0A`|O63?(LUy!M{+sqv+y}o+V1gf2A76R`^XN^3i0;Tb(hDUU!)YS#}a( zpsJdn8^oYqwZkOt8m_9j{g{Iz6A*#cM>WGUN+Z;+BxVKJlgvC?{%un5dHdDi6)inD zzoXIMq#KMqRII6p&3>)Il+}Rss&I_g0QtC4Cy(A+RQ_;A{<6Ys$GlS-{@QAidz^`i!Y%jGoFRDMZ+(>!{ zqSK&*Y%$6oN;aJ^ws`eyI{bKsUT9QsQ8-RU^~)>RJF`@B8&?h9LUu-(%;xRZ_{-}K zr-|(bd!xA9AVw@c`t_=jX?otua~+3)uZgv~P?`Ic*V)f1AQudH7~-p7?^>*vj-7$$1C@)U!oJ(L+oisgU5En#x#j)5!=Fo46^5&G}9 z>K)<=0N>pD-RV@;NLkxr$mV)b@LoqRFaZV2#|*`tSTtjp+Tyk!-|^88$Pd)w4cwyG z_ls9<;fTTIcq#LnmYX*Xu&>5)Cd}hADO6&a>nc8V-*m1S*aq=(CEy9nC!=gYb3LC& zV-27+dZ$zT?6%6GII;_wGU~Umlc~xT0;XsyJ(;COk zQTb$UR3+N;i!E}urMFJ~aZC_f?p*h;$2Sk|WZ6^iel3cH%9vDGZu|->3U6k^PoKlx zW)R*B<(tTf1o7%=@AU3ne!`swD2ph{dYOMM^e-0DE?vN8^A~fNz(<40O`#|=HcSkY zh$ALCP@< WhoReacted( [](const auto &pair) { return pair.second; }); // #TODO reactions - state->current.mostPopularReaction = item->reactions().front().first; + state->current.singleReaction = (list.size() == 1) + ? list.front().first + : QString(); } std::move( idsWithReactions diff --git a/Telegram/SourceFiles/info/info.style b/Telegram/SourceFiles/info/info.style index 8fd8a317b..4c8abddbc 100644 --- a/Telegram/SourceFiles/info/info.style +++ b/Telegram/SourceFiles/info/info.style @@ -362,7 +362,7 @@ infoIconAdministrators: icon {{ "info/edit/group_manage_admins", infoIconFg, poi infoIconBlacklist: icon {{ "info_blacklist", infoIconFg, point(-2px, -2px) }}; infoIconPermissions: icon {{ "info/edit/group_manage_permissions", infoIconFg, point(0px, -2px) }}; infoIconInviteLinks: icon {{ "info/edit/group_manage_links", infoIconFg, point(-2px, 0px) }}; -infoIconReactions: icon {{ "menu/read_reactions", infoIconFg, point(2px, 4px) }}; +infoIconReactions: icon {{ "info/edit/group_manage_reactions", infoIconFg, point(2px, 4px) }}; infoInformationIconPosition: point(25px, 12px); infoNotificationsIconPosition: point(20px, 5px); infoSharedMediaIconPosition: point(20px, 24px); diff --git a/Telegram/SourceFiles/ui/chat/chat.style b/Telegram/SourceFiles/ui/chat/chat.style index 11782e7c0..8dbfb17ad 100644 --- a/Telegram/SourceFiles/ui/chat/chat.style +++ b/Telegram/SourceFiles/ui/chat/chat.style @@ -920,6 +920,9 @@ whoReadChecksDisabled: icon{{ "menu/read_ticks", menuFgDisabled }}; whoReadPlayed: icon{{ "menu/read_audio", menuSubmenuArrowFg }}; whoReadPlayedOver: icon{{ "menu/read_audio", menuSubmenuArrowFg }}; whoReadPlayedDisabled: icon {{ "menu/read_audio", menuFgDisabled }}; +whoReadReactions: icon{{ "menu/read_reactions", menuSubmenuArrowFg }}; +whoReadReactionsOver: icon{{ "menu/read_reactions", menuSubmenuArrowFg }}; +whoReadReactionsDisabled: icon{{ "menu/read_reactions", menuFgDisabled }}; reactionsTabAll: icon {{ "menu/read_reactions", windowFg }}; reactionsTabAllSelected: icon {{ "menu/read_reactions", activeButtonFg }}; diff --git a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp index fb5729bf1..d4204c204 100644 --- a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp +++ b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.cpp @@ -400,7 +400,7 @@ void Action::paint(Painter &p) { if (enabled) { paintRipple(p, 0, 0); } - if (const auto emoji = Emoji::Find(_content.mostPopularReaction)) { + if (const auto emoji = Emoji::Find(_content.singleReaction)) { // #TODO reactions const auto ratio = style::DevicePixelRatio(); const auto size = Emoji::GetSizeNormal(); @@ -409,7 +409,13 @@ void Action::paint(Painter &p) { const auto y = (_height - (size / ratio)) / 2; Emoji::Draw(p, emoji, size, x, y); } else { - const auto &icon = (_content.type == WhoReadType::Seen) + const auto &icon = (_content.fullReactionsCount) + ? (!enabled + ? st::whoReadReactionsDisabled + : selected + ? st::whoReadReactionsOver + : st::whoReadReactions) + : (_content.type == WhoReadType::Seen) ? (!enabled ? st::whoReadChecksDisabled : selected diff --git a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.h b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.h index 8f35d4f56..8874f8ea7 100644 --- a/Telegram/SourceFiles/ui/controls/who_reacted_context_action.h +++ b/Telegram/SourceFiles/ui/controls/who_reacted_context_action.h @@ -40,7 +40,7 @@ enum class WhoReadType { struct WhoReadContent { std::vector participants; WhoReadType type = WhoReadType::Seen; - QString mostPopularReaction; + QString singleReaction; int fullReactionsCount = 0; bool unknown = false; };