From 842a89d2c757ce9726f001d5c9869a386d445481 Mon Sep 17 00:00:00 2001 From: c0re100 Date: Mon, 24 Aug 2020 03:42:28 +0800 Subject: [PATCH] Add GIFs shared media section --- Telegram/Resources/icons/info_media_gif.png | Bin 0 -> 2838 bytes Telegram/Resources/icons/info_media_gif@2x.png | Bin 0 -> 3133 bytes Telegram/Resources/icons/info_media_gif@3x.png | Bin 0 -> 3218 bytes Telegram/Resources/langs/lang.strings | 7 +++++++ Telegram/SourceFiles/info/info.style | 1 + Telegram/SourceFiles/info/info_top_bar.cpp | 3 +++ .../SourceFiles/info/media/info_media_buttons.h | 1 + .../info/media/info_media_empty_widget.cpp | 5 ++++- .../info/media/info_media_inner_widget.cpp | 1 + .../info/media/info_media_list_widget.cpp | 7 +++++++ .../info/profile/info_profile_inner_widget.cpp | 1 + 11 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Telegram/Resources/icons/info_media_gif.png create mode 100644 Telegram/Resources/icons/info_media_gif@2x.png create mode 100644 Telegram/Resources/icons/info_media_gif@3x.png diff --git a/Telegram/Resources/icons/info_media_gif.png b/Telegram/Resources/icons/info_media_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..61fb6dad0dcbbffa0988306c85297c76168bd17a GIT binary patch literal 2838 zcmds3Ym5_B7@e|#2nZ|@0~*BZ?8bmFokzQEXR-yCc7ZBgyANcE5xJeY)4guz!Q5&0 zAweY?#Dx8^CK?4H@c{vOC7M+ipW1iVK zjoyplmR7elxmZyx!w)qpjr^U4P0>B3IVBvnHUaYR%H+b*_D;4#9qm2;yk zRa%^aVV7x5QnHB}#&<%S7yW`ar2%Q!pdWDCJHl}A}*Ak!rjE0(c#o8?-h&AJSA zdH9k5)Y@dS9AiW+hEWbd-1eXu%;@y$15t2ITYd~zgUo)OezVJxX@HlA|7R_KYolgB`ix~C=?brO&0mrIWEeRk&e^^?(`~V!O-1v?gJ8IIE{hql{uYAO#|6l@pMpadIH2a%oSMmPTnLOEoft0dM7B zjNF1c-NmpAIiyrl^I@iRmBqshEMOX-L487yXgWRU7t{np0kD`>umP}5at6>mqXEG# zpjdYfP%V=n)kSX30Z_v>Cd2J7uzC{yGpmZt3_w{-LlUG>835rNF)R(Z$grs-Y*Ndy zmNQ+Db3vBYIc+<%!xaQ0Ko^Y(0nFl+Ip_zCIZR3uA~|9sQ^SNHkjuIbRuKUi2j;Ox zflZi>(@7dMk_GZOj~oY5GNd9C5&%`2c>+xuPo=m#$^sp#IEx7;e!%iqaQdGa`xgr? zIOe5>_g)Cadf+cpF@>(IEW(8L%dS#3o6*XPc`Y+JvsAqYqn`m+B`l|M%*z zt}PZxM^b;u8{l86FPWpZK{JEso`o;eSs|Il)bM}KT48M1PGBhabbH}lmiIOEPkCoV zdqR|T=)R|_N_~`Jd|ionT}$h}Q%@y(;;G90#;To_J;w%SG<-SngJaj2EA};|PtG_y z!1OK$**RO@yYHKIPba$D`hV8?d++$Mf9~qtwYz8Z47~Pg zqDMB4w!3^6ZekL>2ZU=s3ZB~j?wG!{zDQ4O<@Dx{gRk7ZV*JhL21g0WC%)_7R55Aa znf4!EoUm&0fd0^&LtAd|+VlikR((j?w!M1^thndg?Ue(!GL2KVojyP7vFB!Pm^y70 zceuhvZV2uEnlDi&0YWXw6({k4y>)%Q(aeiI52UaJ?iZpw`@A`{`K;7W}WXL4J~VG zoHCEG*MGm4*)wj%ld0+l+D5;*+jn@%l4ZLdKK@nhaW3*x&F6b3k6p9Js#5Ns{oeDw z!-M)GyZZWWcqiWx=zctZcw%*;H+8h{rAgI$9{q5z;$ZXigUh#m^`OuGb^o{9HlMf| XesQp+a?)>(w{uO@H^g_%U$N#7;y~GK literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/info_media_gif@2x.png b/Telegram/Resources/icons/info_media_gif@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..85220ed6addc278663501d59e66cde227ae481cc GIT binary patch literal 3133 zcmds3eQ*=U6+h#TBw#aOAaz_f*&Jyqh)?%n`79l%*hmH|wTv+)m~_U&>TV?;obJTk zNtT&p>VZH)2yxTcdA=5I!w1khOc#@7oJG4*&h3-kR zuv?SR=D*(Pq|@$i-}}Aa+xKoa*4Hg8m{>fKAcz8Ajkf{+R$BM{dHDOs^6C%q&jXQ~ z*{(9iibOg%nJSDP@a!}#2vwWGuPqMH`K65kxm2LyPJn zs*YirGp%SMf=5Tt)bvJ8Q$`Y1KSCLJJXT^{z_v_QC9Tz%HEIp=LKC@3j^P-JaZ()H z$Z!JA9b5JU;}jSs1@&u^9Bdm8%JD+kSSa2#5;WnLf+bN1YI+#rnB_1GAv&UlNRUxd z@MwyrW5<|X+30bf$5XFsL0Q2QM#IASz*p_zSr^Y!oSjY5_4@^%YM4+Jk6R(l#>te6c0tnFfa%M&^5B&tBFx-7g+041tDo7wsD7^iw_1| zsGOzBd9H#AI2~n_vz&)ifDsYIo)FJw*eudzT$4~4ZPj8WVT~}7KDv{LAy=4 zF|?rB3UyQ!!cFL2I{K)6IhMZxV_(ev-r8cy=y>eMyaE14_Gxj%7N~|0KC{rtI!h)q zl^XirvzDA2brKlKJw9GokC}4~{*yTw;hx|ob$srLk?#S5nDBg4a%PWjq-V)}HjSb2BXqxTCFFW-74&%YtD z(>BM)AC!g*kDR_$@~xwBCjaO^K3`n6^TpGfZ*(+xXYBj#V>>4%BqF~(iy`t7L=lm_ zg2+#J{BJgN{z{s=^reSdh^{BspBd);Jxk79z9wzm-SZ;L@=D^V6~sV*EzZv~`_K8h z6Avm!4!%WP{OjSa8T~m2FRasu1-o9^C3c^9_ex>nwL0$Mj(=v=+q-vcA5;(hUg7sN zl{N^kUu|R`|K)~)rRO)rh_mVkmj>4K?UuOfLml?h?bLE>^zFglT=Moce{l8Y-cu|2 zKm4Wo2|~JH3ht7_XVuOVe>#xWPMw~v&wco8^Ru53(%Z|oWe;81Qn>Lsp7?3*HhseR zS9#*KEf;=UnsfW31#eCwls#83Ov4do<<`&cD&1Vt-u%|W-c!Gh9s2CrjgD)*r)Cew z<`hqUzC(0Aa;&l78$`}*Z%!6*SUk}_aO2{Wi|1wMcGhQAf{W~|&@yU$EAe4h?fERw z^1@bEPvP}$;_+8EMoYejZ1I8_zj*fP37LiyI({+WU!{&4oul-|^04vA*WN+c#eCvpsE_t~^kA?j)M< zM|x8)wXcTSbYrlnYIpYgMQx{wS2>D1-y3pkn_=xseS^x{_lwub OzI@en-o5izto;{4NmFtF literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/info_media_gif@3x.png b/Telegram/Resources/icons/info_media_gif@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..781866f57fd6ee522bc7662d4d5100d96430bd68 GIT binary patch literal 3218 zcmds4e{d639uEadDU_BG5ev#|${j`6Y<@QhO_?<5FQ!RLt$>|5r!TuN$f7bcOzAZ4PdlFk+mQcfK(-tfE#%k&Z_J^^jjrhXsdFG z!Kroz?8wIy)C%a)T2~oWTS=K|<$`RG6|!IhERrAyv3^dpgsjSlT?@XKhe;)fK%`2m z(k43uOPwXa&IR(5f{iQf(qNIznT#=+zdj77Tur*qcCm zETxXTL0|ZnRq2zYfQ2M$YHCz9Iu$Q?NsZZTCe>O}t0gdk5W}1VLj)(L4_R;^krJ4I z#PA%DEkZXRl&nh3G`a*f5Hrh(gEC>k$Pf&W8kJgJQUpj-FYCH-SF{3yS+rJ%LaWk5=sKO2LQa$*N1;N8Rf+Xc zF$`^iYLmz9&eRbmL?J@2)n^iBkJe3SJZ5Mx>5N*F&OG$IgQtRW7Rb*>3xeh;Y~waP zsMTt89;hMA8l92wK)sG|(`r3ILzAA?(8!>p;E=Uqfx$Hi{ll%wtY~b}lc`ag%{l{N zq6~=0gnAPJ-5NDv)S1kBjb3Xu(ndM+Z+k97A*l$4ksuD1R1WkG-uanf0!A<{$YPxk z6lo7W@D~{LMja@^70d!AAO=}L%R&Q@kpRX@^8m$jBBCTD1qA?UCcucp<&RjEDg0!s z6vKG|@-x__h-gd$ASNiXJPjno1~4Ut!;&*}kdr`A0)AZQxb5H$7a@!QP8tpZ=x3^e zPz4qR8F6qyVo(eqj%Gv=fuLU!7z&BNE5K@o#=uer&*Me1*b@(`nQ9~m5F5iu!9fu~ z3P)aq9QH?HTs86o52P4BBQl~2D9ImD`o9zQKP0$|(m&Da|AVl-hg%Et?jlcgP7Vzz zzYwDJK;ETdB3;>1z=*hCh6khhD5|<0*GMC_KuUhWSe2CASrM%S(P3tU#&S<3JotQ# z4`HJ}&~Bq{MBXFSKmpmjxCz}$M<14#ck&lu^$)YZx3(BHIuiRk-T?n2`$2IiALP6U z?^(!5okfBf4GsDIs72<6?F5EmkGB`{ZERnIf5di1xF=YZ0^av*T;M&gP{e&x=&+TA zKL5HoZSNKJw5P)HV}kel>y&fiR(VDzOkAr{GG@MCH3v#>{%*M&tYXO zRjj`{f61}yS*KnJ=MQw1Hty=Gnvp*7cc1P)UX#7^nA+b_z8M{Hr6xCwSp!;+r;J%O z`N3Z}FAV&v^R(}<`rWyg`R*FI{p`K}l9 zy{A{4nefe*JGNxk9|g(r9o=ltr0jW9C%ip#!KQV>?1OyCo8wM=yZjxSujuc4&T}X#8nr+v|CogJmtUBjQ`AcfY$Cnq@uY6^l)%VALt`ywQ zZLPboKHaNdKJ{Vii|>CrfXxrIIr8d1*^$xq^y!f4%Yp1Gd8vI{n!kH_g>l`*<%T9sS=ypXq`*y6LlfAE9fTs_#^)bhkz&F?n;=^ZxsK>xu0QD4nnw0~5(I(>s;tSum> z_e&Pm*nCmw4}KCd%>wkbJmI{_H6=G|Z6Nv7jnLMgjefY{!>7kx*;}}QUiQ*Pu TitleValue( switch (section.mediaType()) { case Section::MediaType::Photo: return tr::lng_media_type_photos(); + case Section::MediaType::GIF: + return tr::lng_media_type_gifs(); case Section::MediaType::Video: return tr::lng_media_type_videos(); case Section::MediaType::MusicFile: diff --git a/Telegram/SourceFiles/info/media/info_media_buttons.h b/Telegram/SourceFiles/info/media/info_media_buttons.h index 4e091e515..4b4b52cea 100644 --- a/Telegram/SourceFiles/info/media/info_media_buttons.h +++ b/Telegram/SourceFiles/info/media/info_media_buttons.h @@ -30,6 +30,7 @@ using Type = Storage::SharedMediaType; inline tr::phrase MediaTextPhrase(Type type) { switch (type) { case Type::Photo: return tr::lng_profile_photos; + case Type::GIF: return tr::lng_profile_gifs; case Type::Video: return tr::lng_profile_videos; case Type::File: return tr::lng_profile_files; case Type::MusicFile: return tr::lng_profile_songs; diff --git a/Telegram/SourceFiles/info/media/info_media_empty_widget.cpp b/Telegram/SourceFiles/info/media/info_media_empty_widget.cpp index cee74a857..a79cb821f 100644 --- a/Telegram/SourceFiles/info/media/info_media_empty_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_empty_widget.cpp @@ -36,7 +36,8 @@ void EmptyWidget::setType(Type type) { _type = type; _icon = [&] { switch (_type) { - case Type::Photo: return &st::infoEmptyPhoto; + case Type::Photo: + case Type::GIF: return &st::infoEmptyPhoto; case Type::Video: return &st::infoEmptyVideo; case Type::MusicFile: return &st::infoEmptyAudio; case Type::File: return &st::infoEmptyFile; @@ -53,6 +54,8 @@ void EmptyWidget::setSearchQuery(const QString &query) { switch (_type) { case Type::Photo: return tr::lng_media_photo_empty(tr::now); + case Type::GIF: + return tr::lng_media_gif_empty(tr::now); case Type::Video: return tr::lng_media_video_empty(tr::now); case Type::MusicFile: diff --git a/Telegram/SourceFiles/info/media/info_media_inner_widget.cpp b/Telegram/SourceFiles/info/media/info_media_inner_widget.cpp index 3ea25dddd..96db45a63 100644 --- a/Telegram/SourceFiles/info/media/info_media_inner_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_inner_widget.cpp @@ -125,6 +125,7 @@ void InnerWidget::createTypeButtons() { addMediaButton(Type::MusicFile, st::infoIconMediaAudio); addMediaButton(Type::Link, st::infoIconMediaLink); addMediaButton(Type::RoundVoiceFile, st::infoIconMediaVoice); + addMediaButton(Type::GIF, st::infoIconMediaGif); // if (auto user = _controller->key().peer()->asUser()) { // addCommonGroupsButton(user, st::infoIconMediaGroup); // } diff --git a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp index 04768355d..7aea2918d 100644 --- a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp @@ -71,6 +71,7 @@ UniversalMsgId GetUniversalId(not_null layout) { bool HasFloatingHeader(Type type) { switch (type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: case Type::RoundVoiceFile: @@ -235,6 +236,7 @@ void ListWidget::Section::setHeader(not_null item) { auto date = item->dateTime().date(); switch (_type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: case Type::RoundVoiceFile: @@ -261,6 +263,7 @@ bool ListWidget::Section::belongsHere( switch (_type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: case Type::RoundVoiceFile: @@ -505,6 +508,7 @@ void ListWidget::Section::resizeToWidth(int newWidth) { }; switch (_type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: { _itemsLeft = st::infoMediaSkip; @@ -537,6 +541,7 @@ int ListWidget::Section::MinItemHeight(Type type, int width) { auto &songSt = st::overviewFileLayout; switch (type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: { auto itemsLeft = st::infoMediaSkip; @@ -562,6 +567,7 @@ int ListWidget::Section::recountHeight() const { switch (_type) { case Type::Photo: + case Type::GIF: case Type::Video: case Type::RoundFile: { auto itemHeight = _itemWidth + st::infoMediaSkip; @@ -966,6 +972,7 @@ std::unique_ptr ListWidget::createLayout( return std::make_unique(this, item, photo); } return nullptr; + case Type::GIF: case Type::Video: if (const auto file = getFile()) { return std::make_unique