From 0374d8caa87b1cffec5fa9a2cecf00a5b7f1b49f Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 5 Apr 2022 10:49:55 +0400 Subject: [PATCH] Add "Photo or video" and "Document" attach menu items. --- Telegram/Resources/icons/menu/file.png | Bin 0 -> 567 bytes Telegram/Resources/icons/menu/file@2x.png | Bin 0 -> 993 bytes Telegram/Resources/icons/menu/file@3x.png | Bin 0 -> 1297 bytes Telegram/Resources/icons/menu/image.png | Bin 0 -> 541 bytes Telegram/Resources/icons/menu/image@2x.png | Bin 0 -> 1035 bytes Telegram/Resources/icons/menu/image@3x.png | Bin 0 -> 1438 bytes Telegram/Resources/langs/lang.strings | 2 ++ .../SourceFiles/history/history_widget.cpp | 17 +++++++++++++---- Telegram/SourceFiles/history/history_widget.h | 2 +- .../inline_bots/bot_attach_web_view.cpp | 15 ++++++++------- .../inline_bots/bot_attach_web_view.h | 3 ++- Telegram/SourceFiles/ui/menu_icons.style | 2 ++ 12 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 Telegram/Resources/icons/menu/file.png create mode 100644 Telegram/Resources/icons/menu/file@2x.png create mode 100644 Telegram/Resources/icons/menu/file@3x.png create mode 100644 Telegram/Resources/icons/menu/image.png create mode 100644 Telegram/Resources/icons/menu/image@2x.png create mode 100644 Telegram/Resources/icons/menu/image@3x.png diff --git a/Telegram/Resources/icons/menu/file.png b/Telegram/Resources/icons/menu/file.png new file mode 100644 index 0000000000000000000000000000000000000000..4bf456b4c6fa8377c6281b6e56938f6674a94d7b GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlgfY@w%%V~B;| z+mPL>4mk*zsyT6J=DhvGpsJARBCzI4{f5n3H*OGm%c7{M-*lFBv$v$lF|l~C+^{O-Fo@BYUpQzrQ>x1M{hYK5G^u_4SX9 zxU*%B(!`F;Stc*ub)+e`J-j9JH@@R}r4^&wi=v%3&N*_wXSns`>%LR*96{4hr`pK< z?+#O%7_t6(f$qnK>u(vjaW`d oh68DvS6<9Q4?D3OZ`Uezgp00i_>zopr0QuJBmjD0& literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/menu/file@2x.png b/Telegram/Resources/icons/menu/file@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d18f28300445b9c0f4415ed881688d3ffa331852 GIT binary patch literal 993 zcmV<710MW|P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NFOG!jQR9Fe^SUX5#K@@%JD*hUO zg`KF4ksua|3D^W;{1hpIwS{6KVn7K95d;MVK~U3J*&75&NF@>ohzLO>jUO-&#EAF- zzxgTd9(GW|zM1=8Lfq`adqpzbd+xm_XXf3Ri6m){rhuk^ra*obC{Rhv5AR^Y>G(|^>dMNbaZrmeI2TN ze0-dpot>PVyuZK8E48+^mX?-AqtU0QCxgLIQ&R)X!oq^n>6C-Bw=^|1y}Z0Ynxms5 zy)h%@I) z$Ex*~l$2nFBI(rBlw!;ugn%zEFZcWXjML1_jA905Ktn?VOV{1qt%#NrLP$kLMIaDh zNv5Z#6_YSPp$G@rnd|QEPK2TDudlBI0|R?|dw?x2E;<|z8qd5!LTZ8)F?c8X`}_Cz z_kmnmTAG}kR1EoELMZ?I{M^^qcW`ik@$&Mr-EOBjeLEqPM|0}!?F|Nl7_Y3XjEsyB zoc;zOlz)7D?CI$_JUqmBb#=A5xmm<1H-yk2P~hu5;1+v$c(7P3=xXQ)V`F1n42-!U zgbfwB%w}_8A(im{{@(3&1KHWxDI)Yk-P3m6rM_@;8JY; zobZ;G7S_`+;J9U`jg1Y4r$5in&jBC~CzQgnqLg8HczAq#{Nmz*0!b214FD7u7mHxR z;|GK}K0Zd6PN&1ELliH!;}A#8h|Ol3pP$FluCK3`$HJ1EHI$wj3y4@lH#au`6AI;Q z%F;OzG=tE;QwMYB#O zlU$fkp{uK_L?VG0Vk6{cq>UXN9ROTjUUKhubgZQQ8l;fu)7{wEh=VrdSzBBCv}N+G z{-UTRtI=r0o(eYDH`v5+ql9}IL#w<>b5nmAu~D?OwLud_@(Kh%K7$ P00000NkvXXu0mjfRl~I^ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/menu/file@3x.png b/Telegram/Resources/icons/menu/file@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4542036fa561cc839f3858506e06f37b33a135 GIT binary patch literal 1297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1|Sip>6gA`6MbbHUhz*6n$;uw;_ z`Zmg2qcl)t-@TL3E^ItJQw$Os8YMd?^z`yfaCdnU`opy)=*W=+M;aPaw5Bks{`ctY zcoON+_37Js9o_cVbN*UAd*obLafdy*L-t-O+L5=FOi>+$h)L zr>3?V*xK9o_w_AXwv3I1#UR(%*!ZM@t?k{zhm{o-6KiVbNIAZE`7-fWVV6^GuI|Gd z_wS!SapD30=T-^HY15`Tg-^b{Zk=9L%ESkc9~T!EHgdds|6W*FxRvR(AhY_@r%zpY zTE2ZNQ#_wGwYa!gv&P%IdxbS~(t}l-Hcgt-eBs(PwO8?R^#uh2$@VrjEUc`ZRz_-U z_p-9Gw%nODd$y~y$18t-|Kta~y}X>_K1mNYuUqGLdhN!Ifl3oLoIG@h$t^Z2O2};6 z&5Dl3+ih)Zy4!#Ks_Kl$cyuoF<+E>bHI4~>!kkq+RVsgW$QVAjaQE)o+L!$N{NW)X9Yw{iNe3RDzwMgh=H_E2+!{p3l{D?WaHdOA8!Hg4*W&|wjn_2WmyB+J%U zuU;KL?jCaP)Tu`xiJE!$?%h*T_!06@#?R%!t5;oKJ7>(0$TAnuQ7S7hH#atJwg?Ie z0>;{*Lx*@0ZrbnKv*(DLy}kYK<==E;gfHInS+sQVV&-WL0%9DjtgN$V&t{qa(!j__ zsC3VsJu^-%NRZvQckkXukCJ|PIiwg!O`bHVLSfOlg9jP8<{Z(H>gvcWD-%0aGb8^` zjmPABtLGe9^V+aw$DTbr`A32J-@M6*$p8BFtLlqmP6Y)9S_MMJ-@bh;DJ&G+KgHok z#@2wQ{b?*4cJDqdeC^W06U-j|?f;H1_;=y*#cluXlIA!E3SKVz?0>>UB((pp%P-ZW zfB$WdMLPW7H=X^9*?E)TBPz>UoqaRP4U3 z92a{5&R$PN6%`g+hne-YwP(K^^M3Q;gFx-kqene+lno0FL=*faO8xx(UkbNn9t|_t z`SCbk!V1RIog4Jqui8%e*|w{R-#70nm)q|pe5XsZv$Icd)fE>N+1Z-aC#Mz1T2)n4 z{J3*RW@A)r?9{TQ*%{9)TGj>6Web7!Noh?Us0S+b=KtZDl{ zx~6zEEasY%ePEKv+`=av7hZF!tE)R5_fpx}ICC*y=S#zd-yT0szM=K``*-o9zl@Ln ynxQd&-n_oPzHQsLf2=)mC7er(86EzS{K2m5JUiy~hPyvO#gV70pUXO@geCxl-BS+$ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/menu/image.png b/Telegram/Resources/icons/menu/image.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f5c3c2fe2e26418f92bead30a716215cb51109 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uv49!D1}S`GTDlgftliVaF~maf zZOHo5hXO>dp3f9W6E@V1K6dMXyyt|qYq+$tlMH%Yd2jK!Il7+t#eXA=*Lh8o@8N`C zbAgt`0DX@0&r|0gn!fMBCClgYs<%~FR!=b?ZOt-~^8aVeBt7HhFMi*IMc?l`ok?(h zyq`tzzWf1u{w}wVnF_|6bgXCkgoLVcF+E&t$fMk)bh7to(&n3M0yG?^t$VGZ)KWDs zTyOe9`CED0Z z^ktLTXP><+c~trD;mPNp_r2E_>*jZS{LzA=DQP1|?#q%}o7S9us^ls3x5!aI=J-zm z7U9fUZnqL5XZo}SFp0Pp#!e65$+<1Z*B-(9c$3cIA0_*OY>k~jx Nvd$@?2>|t)*JuC$ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/menu/image@2x.png b/Telegram/Resources/icons/menu/image@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..aba87b9456c004d59acbbdf64ec6105e876b06ce GIT binary patch literal 1035 zcmV+m1oZofP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NFbxA})R9Fe^S4~JNQ504aw4xsi z3M-PLKn$WqLCd0z8>3CzTD1{vmAa{1h*A-*LI^?Hw5lKq7lK-}tB9Z?%nCxOl_(NK zi|W1aabDt^yfb4?yv@u)@0@eK?|gIaxp(d;6!IlkK(2sXf&W_prC@rK$z-)!hlYll znwkWISpnH>_Vn~L5C~jfU$bI_?JAYZ<#N5gzW$Qv0u=~B%adEp<8wG1OG`@#$mMde zSnTfZ4#IfiSuUkg+0)ZAHa4cy>4<#xk7S<{#2l^ug~dp_V@P-m7|1T`X0hT<>cf9 zuTT6=OiYx>$!n5WkilTs-`}sPsXMs;X*ZW5aH@e+@3%a(jD=ZQkee6_AaMjfq48MqG!7hYbx4 z1s4WtwK@`skauQg2A1yb?)&?DvdquVQ!of&0eLZ2)R-d(`J&M%vD5Fx#YJ0NTY+nR zeVyzpD=P&f0F|M>iXaY_?w8;DWJB*o3W^r-x|dl+uPeY z`9?-Y$cuw1Hbah=bBiwA+}tEh$z+n_6~3i!48p&>ybKNwmc(>)bWBfAcXoD`^m2^& z0KyZ3^YZeN;}X85RR%En1G6Ix5Emi1%9tA?q)-aC+b#J~pGQ1XP&%Ck42|sZczE#T zx@v1{0YMM2fJ{Nyi-8#!7#JNLWr54JWBpq!7NE}0&so@iHnHL$ycw{`qGz$+V8!0t z+!Q9UI86K)TgLeKcvn{!c(6Q=j*i4*|3(fE52sQo;3d4UL>3knc%(2ZL>Sa*c6JuZ zdV700?*tywk}mWOW-1g4eWx}h8D*nf0l5Nl1%9LgzX1Vdq6`s$$FTqa literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/menu/image@3x.png b/Telegram/Resources/icons/menu/image@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f6ebd3781e957fcbe2b972febf76b678f6ad5b1 GIT binary patch literal 1438 zcmZ8hc~H`682%|BMu?h6fC^^1X--*QtmaWhDpHO*D%$2j9)ReYVtGv_X(k?{Symnt zxH{gYS$S)Mp?2WvXdY|XAzP$~rmH2eySRVs&NlBn@AJOT_x$nBH{bWNe7rq0U}zWs z02%~Oyq}Uix1p}8%(F$NT1rx3_<6Vi_k@OGWrL3jB1E4$1?*SW>VV2s8UWt5D1lZ2 z06-iS0HkD4c zsc2tgnuEN^Po6x%^YDIfxNg*2HZsM`E4QGh%v|cmEheS*EBYN3f!*oL&i#z#_<0Y- zCOaru@~A)lBHdN!B74xPjrCReJ`{Q_lhVL-M+b+RnwqG{$n5OwuUlKQvuIG&aQK=` zmd;=>5)-X$Y;172&DB+|;VAb}OUugoy6#}KEE7>}=!XL{nV%&Ry9$hviO*h@+9>6l$4~< z+HSY>^f3dOo=VtTrzMN&cn3X2^b9i>1FC~MmKSZse+ zS6V{C*yN;0B5AIKMZX>#1lxL&mG{c!a*0IZILX6fh{@$payWQ1>8R9pK|C`3T4tgMKz*K>2x6v~L^FAWWO5MLp)a3b6?Qw>Mhn5kuJkaIL7Bm{@U&G--Z zb$1g_o}3`_@HLq-nQUd{92+ivU78e^IKGe;KUGAWnTp|!yiJ0@}&+Eb?5)%{YbmA9dl&BAVTEv6FV7W-t z$Aty0%Az98$KaSNV`F2hTU%b33nCw@PG4W&fmfHiDtwUko9*qmvpn&!eFvJHCvK|- zMNp}^m@voQg|O8R2tlO;@tZ&I(9A(AD;9h-IMr<>+#tLiW|0vUbp;camOjGn?Cg|E zrFhDIate6t40P!I`>HSXl_6J^126r4a4LK_%b9i2yUH=g#7;IfH8oRCu+K0KyiWaR zV0v6!^Q~LAqTjn3?b@{qgTa`F%1sqRiqT87HRDtctDrzm3D*E_WIeNsei5u)p(m{W z(UCU%e2FViZ)|F+EHAfCZCBrMp!^2}P#o5W}-u?SD;^6V%m+qtam1q8hzV-*abuEp0 VV*~s;V79#*2`9Yq_uRrS{|&g#dHMhV literal 0 HcmV?d00001 diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 9d0ebaf9f..a75c8960f 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1489,6 +1489,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_attach_file" = "File"; "lng_attach_photo" = "Photo"; "lng_attach_camera" = "Camera"; +"lng_attach_document" = "Document"; +"lng_attach_photo_or_video" = "Photo or video"; "lng_media_open_with" = "Open With"; "lng_media_download" = "Download"; diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 00fca145f..8df631fec 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -498,10 +498,14 @@ HistoryWidget::HistoryWidget( _attachBotsMenu->setAutoHiding(true); } }; + const auto attach = [=](bool compress) { + chooseAttach(compress); + }; _attachBotsMenu = InlineBots::MakeAttachBotsMenu( this, controller, - forceShown); + forceShown, + attach); _attachBotsMenu->setOrigin( Ui::PanelAnimation::Origin::BottomLeft); if (_history && _history->peer->isUser()) { @@ -4039,7 +4043,8 @@ void HistoryWidget::cornerButtonsAnimationFinish() { updateCornerButtonsPositions(); } -void HistoryWidget::chooseAttach() { +void HistoryWidget::chooseAttach( + std::optional overrideSendImagesAsPhotos) { if (_editMsgId) { controller()->show(Ui::MakeInformBox(tr::lng_edit_caption_attach())); return; @@ -4058,7 +4063,9 @@ void HistoryWidget::chooseAttach() { return; } - const auto filter = FileDialog::AllOrImagesFilter(); + const auto filter = (overrideSendImagesAsPhotos == true) + ? FileDialog::ImagesOrAllFilter() + : FileDialog::AllOrImagesFilter(); FileDialog::GetOpenPaths(this, tr::lng_choose_files(tr::now), filter, crl::guard(this, [=]( FileDialog::OpenResult &&result) { @@ -4073,7 +4080,8 @@ void HistoryWidget::chooseAttach() { if (!read.image.isNull() && !read.animated) { confirmSendingFiles( std::move(read.image), - std::move(result.remoteContent)); + std::move(result.remoteContent), + overrideSendImagesAsPhotos); } else { uploadFile(result.remoteContent, SendMediaType::File); } @@ -4081,6 +4089,7 @@ void HistoryWidget::chooseAttach() { auto list = Storage::PrepareMediaList( result.paths, st::sendMediaPreviewSize); + list.overrideSendImagesAsPhotos = overrideSendImagesAsPhotos; confirmSendingFiles(std::move(list)); } }), nullptr); diff --git a/Telegram/SourceFiles/history/history_widget.h b/Telegram/SourceFiles/history/history_widget.h index 5225befc0..e077e1227 100644 --- a/Telegram/SourceFiles/history/history_widget.h +++ b/Telegram/SourceFiles/history/history_widget.h @@ -423,7 +423,7 @@ private: void animationCallback(); void updateOverStates(QPoint pos); - void chooseAttach(); + void chooseAttach(std::optional overrideSendImagesAsPhotos = {}); void cornerButtonsAnimationFinish(); void sendButtonClicked(); void newItemAdded(not_null item); diff --git a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp index 5005e4152..ed77e63a7 100644 --- a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp +++ b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.cpp @@ -674,7 +674,8 @@ void AttachWebView::toggleInMenu( std::unique_ptr MakeAttachBotsMenu( not_null parent, not_null controller, - Fn forceShown) { + Fn forceShown, + Fn attach) { auto result = std::make_unique( parent, st::dropdownMenuWithIcons); @@ -682,12 +683,12 @@ std::unique_ptr MakeAttachBotsMenu( const auto raw = result.get(); const auto refresh = [=] { raw->clearActions(); - raw->addAction(u"Photo or video"_q, [=] { - - }); - raw->addAction(u"Document"_q, [=] { - - }); + raw->addAction(tr::lng_attach_photo_or_video(tr::now), [=] { + attach(true); + }, &st::menuIconPhoto); + raw->addAction(tr::lng_attach_document(tr::now), [=] { + attach(false); + }, &st::menuIconFile); for (const auto &bot : bots->attachBots()) { const auto callback = [=] { const auto active = controller->activeChatCurrent(); diff --git a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.h b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.h index 7d859279b..c68a33928 100644 --- a/Telegram/SourceFiles/inline_bots/bot_attach_web_view.h +++ b/Telegram/SourceFiles/inline_bots/bot_attach_web_view.h @@ -132,6 +132,7 @@ private: [[nodiscard]] std::unique_ptr MakeAttachBotsMenu( not_null parent, not_null controller, - Fn forceShown); + Fn forceShown, + Fn attach); } // namespace InlineBots diff --git a/Telegram/SourceFiles/ui/menu_icons.style b/Telegram/SourceFiles/ui/menu_icons.style index dad37e892..fc8f15fc3 100644 --- a/Telegram/SourceFiles/ui/menu_icons.style +++ b/Telegram/SourceFiles/ui/menu_icons.style @@ -108,6 +108,8 @@ menuIconCustomize: icon {{ "menu/customize", menuIconColor }}; menuIconSoundOn: icon {{ "menu/sound_enable", menuIconColor }}; menuIconSoundOff: icon {{ "menu/sound_disable", menuIconColor }}; menuIconSoundSelect: icon {{ "menu/sound_select", menuIconColor }}; +menuIconFile: icon {{ "menu/file", menuIconColor }}; +menuIconPhoto: icon {{ "menu/image", menuIconColor }}; menuIconTTLAny: icon {{ "menu/auto_delete_plain", menuIconColor }}; menuIconTTLAnyTextPosition: point(11px, 22px);