From d9426413ddf4dae1427af1d6fc6047b253f19121 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 2 Jun 2019 22:44:00 +0300 Subject: [PATCH] Added online badges to chats list. --- Telegram/Resources/colors.palette | 2 + Telegram/Resources/day-blue.tdesktop-theme | Bin 10548 -> 10657 bytes Telegram/Resources/night-green.tdesktop-theme | Bin 8877 -> 8905 bytes Telegram/Resources/night.tdesktop-theme | Bin 8861 -> 8890 bytes Telegram/SourceFiles/dialogs/dialogs.style | 4 ++ .../dialogs/dialogs_inner_widget.cpp | 28 ++++++++ .../SourceFiles/dialogs/dialogs_layout.cpp | 66 ++++++++++++++++-- 7 files changed, 94 insertions(+), 6 deletions(-) diff --git a/Telegram/Resources/colors.palette b/Telegram/Resources/colors.palette index d19343a1a..1467b92fe 100644 --- a/Telegram/Resources/colors.palette +++ b/Telegram/Resources/colors.palette @@ -194,6 +194,7 @@ dialogsUnreadBg: windowBgActive; // chat list unread badge background for not mu dialogsUnreadBgMuted: #bbbbbb; // chat list unread badge background for muted chat dialogsUnreadFg: windowFgActive; // chat list unread badge text dialogsArchiveFg: #525252 | dialogsNameFg; // chat list archive name text +dialogsOnlineBadgeFg: #4dc920 | dialogsUnreadBg; // chat list online status dialogsBgOver: windowBgOver; // chat list background with mouse over dialogsNameFgOver: windowBoldFgOver; // chat list name text with mouse over @@ -225,6 +226,7 @@ dialogsSentIconFgActive: dialogsTextFgActive; // chat list sent message tick / d dialogsUnreadBgActive: dialogsTextFgActive; // chat list unread badge background for not muted chat for current (active) chat dialogsUnreadBgMutedActive: dialogsDraftFgActive; // chat list unread badge background for muted chat for current (active) chat dialogsUnreadFgActive: dialogsBgActive; // chat list unread badge text for current (active) chat +dialogsOnlineBadgeFgActive: #ffffff; // chat list online status for current (active) chat dialogsRippleBg: windowBgRipple; // chat list background ripple effect dialogsRippleBgActive: activeButtonBgRipple; // chat list background ripple effect for current (active) chat diff --git a/Telegram/Resources/day-blue.tdesktop-theme b/Telegram/Resources/day-blue.tdesktop-theme index 4934875a60584ab5258212748aa831c021fb64ca..d24019eb17dce90f17e6c1a38b765c94f92a6285 100644 GIT binary patch delta 3477 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 DULwPC delta 3367 zcmV+?4cPLbQ?ydBwi|x{00;n1Sg1~3h*EoW3;+P%FaQ7*0001EZ)|UJb1rmbWpitE zZ*VPiXk~3>gjic|(=Zf%=T}(bVIXm7moi#-VuQjYZi0ctAfjJHCi3uWcj_RRGteCjG1tl)?JdcwKKji&0-EmlPka{qthw$DQ4(!x zJ~kg3>8bZA_z!<{Qb%z1Pc)LB9Iv_DI%UnbJ42+peqc$w_r5|1WP?P)9$8G*u%S#3 zeL5${L_Z@{l6eP7(^Be0!Tn_j1sRPy11E|2=zF(4d5}pu=_Q5>9AKh!xb>Lt)VEkU zZ`OJl+c+Wjc2(p9J`~8i_i_SRY&%@ZX8p`WU?%A|s zc^{Ch_VzxO`o8me$BqtD*XP@3V zG|0XKjna&A1E1CT!5Af-R$iSPk6mt7@Pus&F!g`>bhdiJW;vWfT~FFRwken8oZ$ch zedB9JDPqi^VkC1lnC!mg61}nJDa;w>;#XQLmn|-q&Ck2w4ru8se=(* zPE3DL3FW~jQNjB#+^nlvjJz_Gy2O^dM|sGj@sjM^8SVlSG$WQ-x}>45uyiX4(|P2t z0kCJ4`|pL;>N-r9TLZY>zT`b@1TqUye+4bIuG`_D%rBoe~Uvip9B} z1=I?bcgiEM*Z@_P2*NLNNwRRB^@|~$EuBmua$CJe*u4+#R8%{J#N@?!4_-)Vl5Xlx4iH(x_3zD(K{Z= zF0v#>foG&DpEASb`UPX$9sVGE5X+fc3HI|*x+>s*JK5uYgSvmQQ3vyu@42ZDg}}5* z2B_)tDko`urYH10?0tx_%nABzz#RJ8YfXtB>fmas6kOu;v%K3Wqb{`S*1&)K84yNs zgnU$7n$gI+;j|L1^5nfJj>q_IH()QZrx zyy`}$0^=amwtt86Q19^yp5A}xk(PBL2;H2Otw`X-4$RSS#*d7bV6bjP!rkrv@z1D# zaymJD$&-e57%;{bn`RY(uc&#;kzLa1Ujj9)eyLBi&nOv}+w@8?cWVrrh@Db6!)3(2 zNR7bi5K4l7W-#|$_g4Ym65EU6H~27}r*1`P>M+TB90=tP%(~ZsSm}ReJ-_8>$$NV{ zubzSEyh6%JNX#Ug9*Rh!D$^bF_i(|^p@tp;n2 zI{Wimj-l$q&T3VU)NOwulmqiWZaqR#p{z}<@&DA;N?(JvrvFPRA3KrO`!_;l=b+19 zBsr)wb3=UmVwHjad~GwT%MDvS+^g^WBgkp#1sL2a&9Qe)dg|75^7!!t^9{n}&&Y~0 z`hMA-dSfvJmxkf=2Worw5(S#^cQZ0&!PUzC@nK`}ght^d4dZ7R1Tzg(b%K}=r zGEM9bw*8xzEL2fa&{1hkw5R(6x|iQlMp=K;w*HIJyW`5Dq|gozXncU~nKC#WH&~sHH%>Q%II%(N*t+MwiQ2c{eC zIF{hsGoJ4EW;27m=)_duLlkB+*uj=yE-bW>(@@}J6t;hz8oQ|k3(MSq5CzVha65}y z@^U>B2e74+JUSscV|FURTo@+Bv2#u6-gfC2yuTtwkPsR?We7H*?aMi;nD zmT?k&1?IvtfDo*}1AJp*?20_(FbS&%0TlMpBT}@fDM_3WtdyNJRiDr9?yB{aC`}Za z6D1f)jedVQe|%nqs?b!e1=!DKLoPKNi*rBQ*wki+R%i48zgB4E(pbg<=)+2liaEFt zwqWh~UUQOt%Ds3=6y73HjnsNfW(p<|hCvnWd33PTpv2fkBQXnVIjFve2-K1T3I-50 z`)#g|0!B|oYbG^;GKOE2Mj<(YG(&7AQUj1O0Fa%#; zS&RI_m!S9G$$HWb}fi|>t8-ries;mgD;ok;@5u^qv|iF zTFq{ZSDmhzC<<6!LSQ*impv*lpI(N6=%v^QZiDmY)3+~r9k0*Nk69(R4JSRM4o3yT zuIYb42U6RviT|6%=dA=x0%PA9g2gdIijMOhMw`&pI@Ow^L~Vj@>Fs?qA9Qc$yzw!d zK0CHiXfOlPfmkua5>VRcl*)#1@KLYVYQoeQZ7>Uxs|2K;Fz9%urm(>#=tNRC`moHz zAcoW!Z5Ycn&)Ct18F|lH0ty>yo(km;y zy7%xM=jHU}`LSKVYLdvStyo!^%rc8OQM}fpjOnp2c zDYUVABd*Eo7ut>P>V|b#I3jilbt@oQn|oSIV?HReoLw#R*IGUKrt#GQwquo_Uvlin-bjMBBG&i4#U+a8Rj~>y>u?L4zh-Pb zgtlfi81I+U*WEpA2dw&hp5yH!^74535w{a`_jk8^xnIus@Py#>haFlArbpiswS?k;>YK@DK`Bo1D(!#O{&>VK8`K(>Nb>>wpIE+9Nb7r)bG^t{TJgc| zwsp#;8TmHz`V|gW6>`~`J9itPI6_od{u&762fRgi<*Ik}cAj-$aCFD#`_tm?Tb9Md z2f`@jKAYq6bwBS7xGc{3(eiWMDec$3<(~p2?aT@B*vS2r)ZKRfm7MNwkW+tA_kk7e zaXB-ZWTSEp`46#pYE`3q+G1Z|e|$+V^n_MljHE+RG3d$^meyCH3Y&BnfalV|D@Z=r zcv^P7gc2{8e?mIT_BaRJO(YlGi6aRrGaOHAc(?yei-?5v8tvV3I);lCmUG2bMfre- z!}23zp@fOBp1CQQk(dI-Mcsd!!#B)0Tq$en9zStjlB<7-b9wa-M(LgkNgK+}Jp_$6 z)+XVe3corlVm5c!eyFqdcP=hEFkG$7pu5G@p%2B?O$y(%8Zx?@ihldaj>1j_Rh#kL z%Xg;^Kht`v=6u|D@Eu>CxARqqI+00c_ieMPK%3z6cH6I9B+JF%50mI9 zWFbEQ6aWAK2mnr4s7_vpQhRg^007@G000#LBme*a0001!Z7Ci)3IHGg000000RR{P xOBVuRbOqG`p=>!rbOqG`p=>!rbOqG`P)h{{000000ssO4#{d8TS114g007$Dcj*8C diff --git a/Telegram/Resources/night-green.tdesktop-theme b/Telegram/Resources/night-green.tdesktop-theme index 3b25f9d55eb6df084a70c66a554d4c9a7a21f62c..c7caf91ba5e328ae3d24d3caa6d8a4100d027a24 100644 GIT binary patch delta 5091 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 F002Uc?!5p2 delta 5074 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 diff --git a/Telegram/Resources/night.tdesktop-theme b/Telegram/Resources/night.tdesktop-theme index 87865eccfc4bcde8226ea40486b456588142f4ad..37e401c7c5ce4cd9295fcc88363e97c3086d759f 100644 GIT binary patch delta 8117 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�SG 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 diff --git a/Telegram/SourceFiles/dialogs/dialogs.style b/Telegram/SourceFiles/dialogs/dialogs.style index a8ff3550e..e679fb1aa 100644 --- a/Telegram/SourceFiles/dialogs/dialogs.style +++ b/Telegram/SourceFiles/dialogs/dialogs.style @@ -34,6 +34,10 @@ dialogsPhotoSize: 46px; dialogsPhotoPadding: 12px; dialogsPadding: point(10px, 8px); +dialogsOnlineBadgeSizePadding: 4px; +dialogsOnlineBadgeSize: 8px; +dialogsOnlineBadgeRightSkip: 2px; + dialogsImportantBarHeight: 37px; dialogsSkip: 8px; diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index 069820ae6..5b09aa80a 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -177,6 +177,34 @@ InnerWidget::InnerWidget( UpdateRowSection::Default | UpdateRowSection::Filtered); }, lifetime()); + const auto handleUserOnline = [=](const Notify::PeerUpdate &peerUpdate) { + if (peerUpdate.peer->isSelf()) { + return; + } + const auto circleSize = st::dialogsOnlineBadgeSize + + st::dialogsOnlineBadgeSizePadding; + const auto updateRect = QRect( + st::dialogsPadding.x() + + st::dialogsPhotoSize + - st::dialogsOnlineBadgeRightSkip + - circleSize, + st::dialogsPadding.y() + + st::dialogsPhotoSize + - circleSize, + circleSize, + circleSize); + updateDialogRow( + RowDescriptor( + session().data().history(peerUpdate.peer->id), + FullMsgId()), + updateRect, + UpdateRowSection::Default | UpdateRowSection::Filtered); + }; + + subscribe(Notify::PeerUpdated(), Notify::PeerUpdatedHandler( + Notify::PeerUpdate::Flag::UserOnlineChanged, + handleUserOnline)); + session().data().chatsListChanges( ) | rpl::filter([=](Data::Folder *folder) { return (folder == _openedFolder); diff --git a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp index 910190f94..e637f8c50 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "dialogs/dialogs_list.h" #include "styles/style_dialogs.h" +#include "styles/style_window.h" #include "storage/localstorage.h" #include "ui/empty_userpic.h" #include "ui/text_options.h" @@ -23,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_channel.h" #include "data/data_user.h" #include "data/data_folder.h" +#include "data/data_peer_values.h" namespace Dialogs { namespace Layout { @@ -202,6 +204,7 @@ enum class Flag { Selected = 0x02, SearchResult = 0x04, SavedMessages = 0x08, + UserOnline = 0x10, //FeedSearchResult = 0x10, // #feed }; inline constexpr bool is_flag_type(Flag) { return true; } @@ -249,12 +252,57 @@ void paintRow( fullWidth, st::dialogsPhotoSize); } else if (from) { - from->paintUserpicLeft( - p, - st::dialogsPadding.x(), - st::dialogsPadding.y(), - fullWidth, - st::dialogsPhotoSize); + if (flags & Flag::UserOnline) { + auto frame = QImage( + st::dialogsPhotoSize * cRetinaFactor(), + st::dialogsPhotoSize * cRetinaFactor(), + QImage::Format_ARGB32_Premultiplied); + frame.setDevicePixelRatio(cRetinaFactor()); + frame.fill(Qt::transparent); + { + const auto size = st::dialogsOnlineBadgeSize; + const auto paddingSize = st::dialogsOnlineBadgeSizePadding; + const auto circleSize = size + paddingSize; + const auto offset = size + paddingSize / 2; + const auto x = st::dialogsPadding.x() + st::dialogsPhotoSize - st::dialogsOnlineBadgeRightSkip - size; + const auto y = st::dialogsPadding.y() + st::dialogsPhotoSize - size; + + Painter q(&frame); + PainterHighQualityEnabler hq(q); + from->paintUserpicLeft( + q, + 0, + 0, + fullWidth, + st::dialogsPhotoSize); + q.setPen(Qt::NoPen); + q.setBrush(Qt::transparent); + q.setCompositionMode(QPainter::CompositionMode_SourceOut); + q.drawEllipse( + x - circleSize, + y - circleSize, + circleSize, + circleSize); + + q.setBrush(active + ? st::dialogsOnlineBadgeFgActive + : st::dialogsOnlineBadgeFg); + q.setCompositionMode(QPainter::CompositionMode_Source); + q.drawEllipse( + x - offset, + y - offset, + size, + size); + } + p.drawImage(st::dialogsPadding, frame); + } else { + from->paintUserpicLeft( + p, + st::dialogsPadding.x(), + st::dialogsPadding.y(), + fullWidth, + st::dialogsPhotoSize); + } } else if (hiddenSenderInfo) { hiddenSenderInfo->userpic.paint( p, @@ -648,8 +696,14 @@ void RowPainter::paint( ? history->peer->migrateTo() : history->peer.get()) : nullptr; + const auto showUserOnline = peer + && peer->isUser() + && Data::OnlineTextActive(peer->asUser(), unixtime()) + && !(fullWidth < st::columnMinimalWidthLeft + && (displayUnreadCounter || displayUnreadMark)); const auto flags = (active ? Flag::Active : Flag(0)) | (selected ? Flag::Selected : Flag(0)) + | (showUserOnline ? Flag::UserOnline : Flag(0)) | (peer && peer->isSelf() ? Flag::SavedMessages : Flag(0)); const auto paintItemCallback = [&](int nameleft, int namewidth) { const auto texttop = st::dialogsPadding.y()