From cf8aaf5f9d20531731dd087ee8e3bc6b9d0e9e46 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 1 Mar 2024 13:17:41 +0400 Subject: [PATCH] Save away / greeting settings. --- .../icons/folders/folder_existing_chats.png | Bin 0 -> 592 bytes .../folders/folder_existing_chats@2x.png | Bin 0 -> 1101 bytes .../folders/folder_existing_chats@3x.png | Bin 0 -> 1628 bytes .../icons/folders/folder_new_chats.png | Bin 0 -> 598 bytes .../icons/folders/folder_new_chats@2x.png | Bin 0 -> 1111 bytes .../icons/folders/folder_new_chats@3x.png | Bin 0 -> 1598 bytes Telegram/Resources/langs/lang.strings | 2 ++ .../business/settings_away_message.cpp | 18 +++++++++++++++++- .../settings/business/settings_greeting.cpp | 4 +++- .../business/settings_recipients_helper.cpp | 14 +++++++++++++- .../business/settings_recipients_helper.h | 4 ++++ Telegram/SourceFiles/window/window.style | 4 ++-- 12 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 Telegram/Resources/icons/folders/folder_existing_chats.png create mode 100644 Telegram/Resources/icons/folders/folder_existing_chats@2x.png create mode 100644 Telegram/Resources/icons/folders/folder_existing_chats@3x.png create mode 100644 Telegram/Resources/icons/folders/folder_new_chats.png create mode 100644 Telegram/Resources/icons/folders/folder_new_chats@2x.png create mode 100644 Telegram/Resources/icons/folders/folder_new_chats@3x.png diff --git a/Telegram/Resources/icons/folders/folder_existing_chats.png b/Telegram/Resources/icons/folders/folder_existing_chats.png new file mode 100644 index 0000000000000000000000000000000000000000..e54a10425911300ae4738dcd3daa509860f1edb6 GIT binary patch literal 592 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 ac;G+Cna;S=%MO?T0000V~B;| z+bL(e9Rnqf-7Vw|6T8%MqeCOwHSuV?qN+9bQ~7{z|JbdMo^m^R>bOw0{6#tUF{gI!RK79ZEch2)Qc5?k`n{Or<@UStTD&9HAg!R4hM2@u&y0W%*O?+r| zGR0{2*+sQ}Tmg3TpZ|)yk+s!Ej{oChwm)l%cAlvc`BJp=P1)|-Z_74DTv+C^%5S;w z)l-ii*9A1|E}YuGlDFO2t6o#Z`A^x-yLmmq58XcX&&w-Y88Ru{UO9u^pJ#vho8LKR z)z4Ba<@omBKku)&C2aLZwspt$EV{TNsOxIhQMTfNPb(k8>sZ3z8#}R W!@nbJHfQBPaq8*n=d#Wzp$PyA`~WHd literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/folders/folder_new_chats@2x.png b/Telegram/Resources/icons/folders/folder_new_chats@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f91df76357aeb853e9f883ef2970c5594c19a916 GIT binary patch literal 1111 zcmV-d1gQIoP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91FrWhf1ONa40RR91FaQ7m0NXcg3;+NF!AV3xR9Fe^SWPH&Q5a^7L_{+3 z7x^htEQFGuqKJiTWF^T$l&okLO0rOFDa_6aD-kJ4i3rI;3Dbn3{Qv(<3E%hB;dDFa z+~eNsT6}$T7c=j9&U4=PIq#gG_l}Q`_wi=Hn}Po<1HM0>ub-b^L_|bzaPZ^f+37y(`vQW*VmVqm&e4!+}zwOEiDZX4};0jj5nbmKR>^_yL)wY_5A$&{r&yV*8|(> zbRstOo{^EUxw-k(|M`7#a#B%IK{>{au&}Vs&d#f=D<*)li9CgdhLRXjQBi7SNXM*< zOY!&j@9OHhzrR<;7TQBYLp03P)Rd4zK;$woFp!dU7>S9A>+9TrPrVWn~EoN|5JRmEF9ZmzOs&F%c9L#CNG7 z4-XHdDZ_ojKzT|rqgq;8DDxX5BqRh!Dl=Ytv$C?1 z2EfET9uG72P0&!LX#l!^3f}DM3v(wiPZ&K89XoadFXRvuO$`C#9vO>5Z+%zrDS+ z+wDjU6A`6BYiny?Umt^`DOgserKNLob3D~Bf{nJava-Lwe|dQs9UYyLl9HL3iA9Dw zq^PLqd$)CUb!sy<7vI_0;nfIEYI^qbY;zI(pu9tYpwrV+p7$Hb@$oV5Rv_r`@Q~;I z2I6+RdA9;Vs7g_9@Kn>0`T2R?r$7)$sPuTMxd?XL!oq@9pGiqcrkstET{$o?pj8dw z4Gs=U-2Jc%F9JFW4} zT`dy~{_^tD-rlaGU{w>?)YQbd*4xDP#wv`Aj8qGu14nxCn!+m>8yhPwF7D~+!S%xT z66E^&dVGAmp`n2<&AwG2D9|t_E-nr)^C+g2;|~rFIyyQ=M@K1$3N;}i0e^AeLE(FG zae;gA?CcChKF$kDGr<@c8KJYsGITf`g@uJCECLPE#2G?;iGMtvo}Msid}{FHrFb*o d&A>mCfxmLC0o@lrjs5@t002ovPDHLkV1n&74>SM( literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/folders/folder_new_chats@3x.png b/Telegram/Resources/icons/folders/folder_new_chats@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d379a9e4b0dace8fd4f1a55e6c8d122867f2360a GIT binary patch literal 1598 zcmV-E2EqA>P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91NT34%1ONa40RR91NB{r;0FW_8?*IS=s7XXYRA>e5T1QAFOB7Y-o573` zb7oXb7(fL_1aT`W1`xr3VVK2$3N91`ajiHjaUq5=ECdxnMg_qzqbsuuBL)l%=B)o8 z{``5=^m|?1U9X=HKK&MYt8S=Mx5B+u)dmL2Pw{}_0mTD~2NVw|9#A~+RvviwRt+(> zV{L8i?d^@f4-XGdPfv_ibfo6!=olCn7#SHEA0HnQ65`?EVP$1SZ_D1^zM-LEb#?Xc z-@liamzkNFj~_ppnwrveb;z}~wav`TY-?*5I0_01 z&d<;PkR}Q{J39#p3F=xptnu{ptgEYoU!R|!2_!T!IXRgFsJ_0QrtmKh(=sC?gQKXE zqMx5%dwV<9fFLGPV19m{gC;L8j})NLx3{+u5fL19Ig404ot>THhls@b>C-0?3U-LI zvolhFPS4KHlIn8OrKP2JcX#yWDcs=TU=mGLRTV{8BP%5(g|r|8jcu*Bw^w6hA}cR1 zFAWV1Nhou3b0T$BVy&&Mqy=s1@bK`>%}tecHezjUjf3O<{$8pnY*ZX0s^VWNN+b~! z6!h)eH^do{@_b_0&`A~|1Veywc6KI>khBq55TxDR-N(kpwC@!f!d5{xcXM-t;Ua6q z&p>KS)B-OjRx{~sbkB>)3M`Vo{8o`=ROhU){`uZ>r`3y;|$B1zT zZFF>0su2biZWHKT!qCu=k&%RTM7HuD?c?LamNALJ z_vOnMPLtSFe*E}B*ZunStGT&3M^SRIsi}$Hj5b{4&0%3-986|rX4TczKY#vIx4gBr zg+!Snud(d}+R#p~eW+GiKFE2+j)!5j`i`&3JAiKwn z5=B`TtkBR#?!1n76;q0h|~p0Sw%xqhXQ7?8wLn zr8Bh6LxvzoX<2KQot+)U2CZWVk+`O$DC?Jniz*5LTE`FyPfkuK%KBv?yQcu4bqs1) zyA);pvUYcODF6gIc5rY&QPwYOd3l)vK%iqt&nU|JWi2c$umeDJmt|{~-H6~C5g0LK z9xE#=?2gfy=J4<^-L^o-pgcG@NH?JuF5alLZ5Npf-y4_g6HKH*^=BIOP6|KO;wsa^ z!XhatNnKfAH90vs^u1mzFx*mUJgAFwu)Ja&9UWqEi;=6SsE`*Qn>F0{vnTa@{lqmO z8yXq4%F4?4;IY@^6tlFnBqK_xrdnEB*wNE9{r&y%uq_pkEb`sm-JFL)I#kJAhUYo$ zJBG&xV`F2MwjF31uVJZ;^H@2;u^tGD+TWEv2q3m2JmqxLdw~y!z0u w^{9<1OvM9=2NVw|9#A}>ctG*M|H}ja05T631HC>)1poj507*qoM6N<$f&**Jv;Y7A literal 0 HcmV?d00001 diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index add970d06..c78969caa 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -2238,6 +2238,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_away_schedule_custom" = "Custom Schedule"; "lng_away_custom_start" = "Start Time"; "lng_away_custom_end" = "End Time"; +"lng_away_offline_only" = "Only if Offline"; +"lng_away_offline_only_about" = "Don't send the away message if you've recently been online."; "lng_away_recipients" = "Recipients"; "lng_away_select" = "Select chats or entire chat categories for sending an away message."; "lng_away_empty_title" = "New Away Message"; diff --git a/Telegram/SourceFiles/settings/business/settings_away_message.cpp b/Telegram/SourceFiles/settings/business/settings_away_message.cpp index 739d12d2a..ae600e0de 100644 --- a/Telegram/SourceFiles/settings/business/settings_away_message.cpp +++ b/Telegram/SourceFiles/settings/business/settings_away_message.cpp @@ -48,6 +48,7 @@ private: rpl::event_stream<> _deactivateOnAttempt; rpl::variable _recipients; rpl::variable _schedule; + rpl::variable _offlineOnly; rpl::variable _enabled; }; @@ -311,6 +312,18 @@ void AwayMessage::setupContent( }); Ui::AddSkip(inner); Ui::AddDivider(inner); + Ui::AddSkip(inner); + + const auto offlineOnly = inner->add( + object_ptr( + inner, + tr::lng_away_offline_only(), + st::settingsButtonNoIcon) + )->toggleOn(rpl::single(current.offlineOnly)); + _offlineOnly = offlineOnly->toggledValue(); + + Ui::AddSkip(inner); + Ui::AddDividerText(inner, tr::lng_away_offline_only_about()); AddBusinessRecipientsSelector(inner, { .controller = controller, @@ -327,10 +340,13 @@ void AwayMessage::setupContent( } void AwayMessage::save() { - controller()->session().data().businessInfo().saveAwaySettings( + const auto session = &controller()->session(); + session->data().businessInfo().saveAwaySettings( _enabled.current() ? Data::AwaySettings{ .recipients = _recipients.current(), .schedule = _schedule.current(), + .shortcutId = LookupShortcutId(session, u"away"_q), + .offlineOnly = _offlineOnly.current(), } : Data::AwaySettings()); } diff --git a/Telegram/SourceFiles/settings/business/settings_greeting.cpp b/Telegram/SourceFiles/settings/business/settings_greeting.cpp index 43cba0763..e16cc6477 100644 --- a/Telegram/SourceFiles/settings/business/settings_greeting.cpp +++ b/Telegram/SourceFiles/settings/business/settings_greeting.cpp @@ -326,10 +326,12 @@ void Greeting::setupContent( } void Greeting::save() { - controller()->session().data().businessInfo().saveGreetingSettings( + const auto session = &controller()->session(); + session->data().businessInfo().saveGreetingSettings( _enabled.current() ? Data::GreetingSettings{ .recipients = _recipients.current(), .noActivityDays = _noActivityDays.current(), + .shortcutId = LookupShortcutId(session, u"hello"_q), } : Data::GreetingSettings()); } diff --git a/Telegram/SourceFiles/settings/business/settings_recipients_helper.cpp b/Telegram/SourceFiles/settings/business/settings_recipients_helper.cpp index 5787bb234..960c354b2 100644 --- a/Telegram/SourceFiles/settings/business/settings_recipients_helper.cpp +++ b/Telegram/SourceFiles/settings/business/settings_recipients_helper.cpp @@ -280,7 +280,7 @@ void AddBusinessRecipientsSelector( }); }, lifetime); - SetupBusinessChatsPreview(includeInner, excluded); + SetupBusinessChatsPreview(includeInner, included); includeWrap->toggleOn(data->value( ) | rpl::map([](const Data::BusinessRecipients &value) { @@ -374,4 +374,16 @@ rpl::producer ShortcutMessagesLimitValue( }); } +BusinessShortcutId LookupShortcutId( + not_null session, + const QString &name) { + const auto messages = &session->data().shortcutMessages(); + for (const auto &[id, shortcut] : messages->shortcuts().list) { + if (shortcut.name == name) { + return id; + } + } + return {}; +} + } // namespace Settings diff --git a/Telegram/SourceFiles/settings/business/settings_recipients_helper.h b/Telegram/SourceFiles/settings/business/settings_recipients_helper.h index e05f702e6..f4432ea3b 100644 --- a/Telegram/SourceFiles/settings/business/settings_recipients_helper.h +++ b/Telegram/SourceFiles/settings/business/settings_recipients_helper.h @@ -93,4 +93,8 @@ void AddBusinessRecipientsSelector( [[nodiscard]] rpl::producer ShortcutMessagesLimitValue( not_null session); +[[nodiscard]] BusinessShortcutId LookupShortcutId( + not_null session, + const QString &name); + } // namespace Settings diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style index 645c78285..8afc8d243 100644 --- a/Telegram/SourceFiles/window/window.style +++ b/Telegram/SourceFiles/window/window.style @@ -303,8 +303,8 @@ windowFilterTypeBots: icon {{ "folders/folders_type_bots", historyPeerUserpicFg windowFilterTypeNoMuted: icon {{ "folders/folders_type_muted", historyPeerUserpicFg }}; windowFilterTypeNoArchived: icon {{ "folders/folders_type_archived", historyPeerUserpicFg }}; windowFilterTypeNoRead: icon {{ "folders/folders_type_read", historyPeerUserpicFg }}; -windowFilterTypeNewChats: icon {{ "folders/folders_unread", historyPeerUserpicFg }}; -windowFilterTypeExistingChats: windowFilterTypeNoRead; +windowFilterTypeNewChats: icon {{ "folders/folder_new_chats", historyPeerUserpicFg }}; +windowFilterTypeExistingChats: icon {{ "folders/folder_existing_chats", historyPeerUserpicFg }}; windowFilterChatsSectionSubtitleHeight: 28px; windowFilterChatsSectionSubtitle: FlatLabel(defaultFlatLabel) { style: TextStyle(defaultTextStyle) {