From d485a05935d7144e4c421c4b92af454d3a70682c Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 28 Sep 2018 14:20:36 +0300 Subject: [PATCH] Reorder chat settings sections. --- .../Resources/icons/settings_stickers.png | Bin 0 -> 1188 bytes .../Resources/icons/settings_stickers@2x.png | Bin 0 -> 2674 bytes Telegram/Resources/icons/settings_themes.png | Bin 0 -> 1041 bytes .../Resources/icons/settings_themes@2x.png | Bin 0 -> 1966 bytes Telegram/SourceFiles/base/bytes.h | 8 ++++++- Telegram/SourceFiles/settings/settings.style | 12 ++++++++-- .../SourceFiles/settings/settings_chat.cpp | 22 +++++++++++------- .../SourceFiles/settings/settings_common.cpp | 15 +++++++----- .../SourceFiles/settings/settings_common.h | 9 ++++--- .../cache/storage_cache_database_object.cpp | 4 ++-- .../SourceFiles/storage/file_download.cpp | 16 ++++--------- 11 files changed, 52 insertions(+), 34 deletions(-) create mode 100644 Telegram/Resources/icons/settings_stickers.png create mode 100644 Telegram/Resources/icons/settings_stickers@2x.png create mode 100644 Telegram/Resources/icons/settings_themes.png create mode 100644 Telegram/Resources/icons/settings_themes@2x.png diff --git a/Telegram/Resources/icons/settings_stickers.png b/Telegram/Resources/icons/settings_stickers.png new file mode 100644 index 0000000000000000000000000000000000000000..d041037b115ab4cf2ca0f0547e1f5c1556f1fc74 GIT binary patch literal 1188 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 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings_themes.png b/Telegram/Resources/icons/settings_themes.png new file mode 100644 index 0000000000000000000000000000000000000000..fd36932b562268931bbf42bbc97ba7885720f2d9 GIT binary patch literal 1041 zcmV+s1n&EZP)%Q*mcip!L0PzPU=ug7_ z6QJZPPLYw3(ChUmEiFY_S{hU;6~tmO?(Xhzb#;ZcwKbT{X4viaFG2Z{HZ(Nw?Cgx6 z$;-3TumX`M6dLjfU8o68!lgWgNiV6V0{rx?xRx36)H*tP`j@Q>$BqSstGcyxK zMMX$WO$7ivJUpPIqXR~x@#{N`ii+aK#)c66*w`4AO67-^73*5pjqU{h0*FrlWV zh5(qDn8^G4dy=HX;b2r$6ajE%W=8O>tgIveN+c34EiI8GT`m_D3PoU`OeW*i)fGu{ zVq!wD>vTGw0?}wR1i=0MeZkhz(INP&)oNZ}Uy~$zdwT-|tE;O?k`E6LOh`!ZNpoLc zA8j@pTU%QNdr3(Nx3;!8Jw45sm>8dh`}_Mzl3QC_fq|2glO)Nxxj6!0aBwg~LP9<) zmcOb7>D6piCy?)6)~(Zg*gy%jF_T=I7^gU|>KvpXKG{Pk~)sU4sAK-X3FOV(9gH{eV8b zR4f()0D^*oFgrU7m&*mW+l}$@aeO9=i;FltJ;meWBZh{Ckdu>xu&^-P-roB83iKa8 zZhd_{0WdZ;mMWF%%V#K)$*52$D3wZiczEbj4}Y7|g@px@q|s>nGUR7XNlD@A>MBX{ z_4SomSy?{gKDUL{YK2~}M_E}JA|fK-@puBJP%4$8wzd{Joesgl!4Qc=&}cL$C@6qb zDg^+vw6wrxvjtA6TCJwX;~`1*^z;PWg+wCp=`ugd$;nBew&s6Z3=R&Wy}cb?uNQ@d zh1lKQ^@}h$ITCwO~%gT-Qj$KwG>+}zw?XJ-d1D=Qyn$0vg5=x81t9g!rRPA4-m zGW?>{YPBRuuh+}?`1oHvXMdwss}*{o+wJDJZ{H{qiG=ac&`{d#c9NvYWcueo0L;$L zro-V7&Shg`gU!v&%+AiHQmN$d@GwczX0!bsAOOb2#nEIk@%{bXrzoDEpM~#{k&)jA z{GqwIxf~rG<@WYAFD@?VcDw0vxoELi7#kb=OTd6{ntx0F{}18svy0eD^q;Up00000 LNkvXXu0mjf*{1p1 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings_themes@2x.png b/Telegram/Resources/icons/settings_themes@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b26c2cd2b2f46fb702327733c7f1035067d81165 GIT binary patch literal 1966 zcmV;f2T}NmP)q9C=4M!ex<sNI8_jH1vs|0)`hWO8j*jP??QCw3_Rs~_hjZV*^SiF!y?giT zApij3KWvNUJAq`|Ux9zR{T2A98z&j0>FMcESXc;3r4rF}=2xIhCc~DNmV^nLZ67{- zz(a=)VMyLN%WU;v3k!iaIZ-7q*f2>t#2;B-1+VqyXi5kw*ptXZ=L zTc1OnW= zc{83pdlq|pdl`90M@LbuRwuuUUb%9GHi7BsX}odc24-hx$K9QHJRVk7R^r>YZy6hJ z>(;Hw6L|diaoWJ|-@iw#R-1?c0RaG)En9}?&Yi=lsVPbgpJI>+0&z<#Hh+qSNWb`uchbMkvD@0(aM7Yg za~DVu1U`NGloH_K!-tgNTc^{}cHye3Dhh8^RTV8(r_)iea=9EwM@K2xnwpxq3#_cH zq!9P^_Tuv8%PCm1*-V?X$z(!;AV`g7GMQ+xX0w?#k1boaU?316VMj(rP$UvX%s=8{ zo5SJ2kt0V)Wx-$&4jw!RU%!5(;Q4$$Ef0^!V^tQ3Y&9|Neb8 ze`-{zRH)bMv8bphDz>Po2=#hBs#Gdg+#5D*pv;daPo9ij;Oy=h3Wcz&tc+C>$#jAs z@b&B0q}(1odc=rl-0-T^YSQ!g_&9WSc7~tVu3Zbo#l{0000Hp{uJ43JMCs*zD}=h+MSFTU%R6tz@xS!gUoD73lGJ!gW18 zJy=jskg#8=pr8PIdV0eA9*+krDk{SD$BrE%<>qiWV(+4_UcDlb+`fGq0RS^IGig^f zR;v~HeEyup@%enTTCEg*uh$!1p4HaYlIlKv`oze`I1i?!rIDVUPA32Wl$4Z!P$;C} zl}aT@rBWt3)+UuoL8(+y%7sE9l$4YJ0Clbmg+h#ci~>_rQ%TP=6T9EiTCJFumxlm=TCEnRr>7ZnqjCC*uC6W;$*o(r$ny(_gZcUSn3I!} zFk!PjCnpE<^YgSeyaIs$u3NV*c7c(miTQGa!9W>ZBTe!V1zxytfkfo- zcrYz3ZC->C1c8?>U80El@#9Ch>&7f_+qP{aviVr5@pwEeD=R~b#X=E>h?}wEuSBA?TJb1ur|Hal63I*im=0a*}D(Oyw&*#JH)vH0H(U6v8zgtU7 z3+&mmht<@?sQ%u)d!!bNwq0WDYPA}lKYxy)P>A-IiDpKl5qUfw+jz{Cv%4u`V#3fE35TMOwi&DaKj zxjE)rpV`O$Znqm%Diw;wV$8_M2)j@yjI|raFAyNMgWpJg{rYv%`@_S-(GHCM9f1IV zJ9qA6eRR*{`}gmsynprT)rBDtfcf&Judk2Q<%>ijp&Vp=|Nb52a{0m#2mpBb@?~0) zY_HF1YHBFEfxUb8E*yaXbGrZ~2m;-1H|d=dCr%_yVBA;OyLaz~YuBzty~4KHY%nk| z08Xb9#>U1#p-_NcuZNVBlrV1JzJ1Wp&=5}=tSs)FMd9P$*#I#*LIuxq`tUba!`y z(P)I$*49LardU!0E+qTUe{J|z;Gb@P1^(&wKaL??&M@YAH2?qr07*qoM6N<$f>F-I AUjP6A literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/base/bytes.h b/Telegram/SourceFiles/base/bytes.h index 09a4cc028d..4606a2d3fc 100644 --- a/Telegram/SourceFiles/base/bytes.h +++ b/Telegram/SourceFiles/base/bytes.h @@ -20,9 +20,15 @@ using vector = std::vector; template using array = std::array; +inline span make_detached_span(QByteArray &container) { + return gsl::as_writeable_bytes(gsl::make_span(container)); +} + template < typename Container, - typename = std::enable_if_t>> + typename = std::enable_if_t< + !std::is_const_v + && !std::is_same_v>> inline span make_span(Container &container) { return gsl::as_writeable_bytes(gsl::make_span(container)); } diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index 75338efdb2..319550244b 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -53,6 +53,8 @@ settingsIconPrivacySecurity: icon {{ "settings_privacy_security", menuIconFg }}; settingsIconLanguage: icon {{ "settings_language", menuIconFg }}; settingsIconInterfaceScale: icon {{ "settings_interface_scale", menuIconFg }}; settingsIconFaq: icon {{ "settings_faq", menuIconFg }}; +settingsIconStickers: icon {{ "settings_stickers", menuIconFg }}; +settingsIconThemes: icon {{ "settings_themes", menuIconFg }}; settingsSetPhotoSkip: 7px; @@ -64,7 +66,6 @@ settingsLink: boxLinkButton; settingsAdvancedNotificationsPadding: margins(22px, 20px, 10px, 10px); settingsLinkLabel: defaultFlatLabel; settingsCheckboxesSkip: 12px; -settingsStickersEmojiPadding: 17px; settingsSendType: settingsCheckbox; settingsSendTypePadding: margins(22px, 5px, 10px, 5px); @@ -153,6 +154,13 @@ settingsBioLabelPadding: margins(22px, 11px, 22px, 0px); settingsPrivacyEditLabelPadding: margins(22px, 11px, 22px, 11px); +settingsChatButton: InfoProfileButton(settingsSectionButton) { + padding: margins(59px, 13px, 22px, 11px); +} +settingsChatIconLeft: 19px; + +settingsThemesTopSkip: 10px; +settingsThemesBottomSkip: 8px; settingsTheme: Checkbox(defaultCheckbox) { textFg: windowSubTextFg; textFgActive: windowActiveTextFg; @@ -160,7 +168,7 @@ settingsTheme: Checkbox(defaultCheckbox) { width: 80px; margin: margins(0px, 0px, 0px, 0px); - textPosition: point(0px, 88px); + textPosition: point(0px, 86px); checkPosition: point(0px, 0px); style: defaultTextStyle; diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index 0ceee59954..471dd43360 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -416,7 +416,8 @@ QString DownloadPathText() { } void SetupStickersEmoji(not_null container) { - AddSkip(container, st::settingsStickersEmojiPadding); + AddDivider(container); + AddSkip(container); AddSubsectionTitle(container, lng_settings_stickers_emoji); @@ -472,7 +473,9 @@ void SetupStickersEmoji(not_null container) { AddButton( container, lng_stickers_you_have, - st::settingsButton + st::settingsChatButton, + &st::settingsIconStickers, + st::settingsChatIconLeft )->addClickHandler([] { Ui::show(Box(StickersBox::Section::Installed)); }); @@ -910,19 +913,22 @@ void SetupDefaultThemes(not_null container) { } void SetupThemeOptions(not_null container) { - AddDivider(container); - AddSkip(container); + AddSkip(container, st::settingsPrivacySkip); AddSubsectionTitle(container, lng_settings_themes); + AddSkip(container, st::settingsThemesTopSkip); SetupDefaultThemes(container); + AddSkip(container, st::settingsThemesBottomSkip); AddButton( container, lng_settings_bg_edit_theme, - st::settingsButton + st::settingsChatButton, + &st::settingsIconThemes, + st::settingsChatIconLeft )->addClickHandler(App::LambdaDelayed( - st::settingsButton.ripple.hideDuration, + st::settingsChatButton.ripple.hideDuration, container, [] { Window::Theme::Editor::Start(); })); @@ -940,10 +946,10 @@ Chat::Chat(QWidget *parent, not_null self) void Chat::setupContent() { const auto content = Ui::CreateChild(this); + SetupThemeOptions(content); + SetupChatBackground(content); SetupStickersEmoji(content); SetupMessages(content); - SetupChatBackground(content); - SetupThemeOptions(content); Ui::ResizeFitChild(this, content); } diff --git a/Telegram/SourceFiles/settings/settings_common.cpp b/Telegram/SourceFiles/settings/settings_common.cpp index bc7b5530ad..1397ef53a3 100644 --- a/Telegram/SourceFiles/settings/settings_common.cpp +++ b/Telegram/SourceFiles/settings/settings_common.cpp @@ -77,15 +77,17 @@ not_null AddButton( not_null container, LangKey text, const style::InfoProfileButton &st, - const style::icon *leftIcon) { - return AddButton(container, Lang::Viewer(text), st, leftIcon); + const style::icon *leftIcon, + int iconLeft) { + return AddButton(container, Lang::Viewer(text), st, leftIcon, iconLeft); } not_null AddButton( not_null container, rpl::producer text, const style::InfoProfileButton &st, - const style::icon *leftIcon) { + const style::icon *leftIcon, + int iconLeft) { const auto result = container->add(object_ptr