From 5c7155c3a555f7caa44d4921f192f0e6997fbea9 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 15 Sep 2018 13:37:48 +0300 Subject: [PATCH] Improve privacy and security settings subsections. --- Telegram/Resources/langs/lang.strings | 6 +- Telegram/SourceFiles/settings/settings.style | 8 +- .../SourceFiles/settings/settings_common.cpp | 9 +- .../SourceFiles/settings/settings_common.h | 3 +- .../SourceFiles/settings/settings_main.cpp | 2 +- .../settings/settings_privacy_security.cpp | 93 +++++++++---------- 6 files changed, 63 insertions(+), 58 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 5c42a506c0..53a2ae1602 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -340,7 +340,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_settings_calls" = "Calls"; "lng_settings_groups_invite" = "Groups"; "lng_settings_group_privacy_about" = "Change who can add you to groups and channel."; -"lng_settings_security_title" = "Security"; "lng_settings_sessions_about" = "Control your sessions on other devices."; "lng_settings_passcode_disable" = "Disable passcode"; "lng_settings_password_disable" = "Disable cloud password"; @@ -357,6 +356,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_settings_stickers_emoji" = "Stickers and emoji"; "lng_settings_themes" = "Themes"; "lng_settings_chat_other" = "Other"; +"lng_settings_information" = "Edit profile"; +"lng_settings_passcode_title" = "Local passcode"; +"lng_settings_password_title" = "Two-step verification"; +"lng_settings_sessions_title" = "Active sessions"; +"lng_settings_destroy_title" = "Delete my account"; "lng_backgrounds_header" = "Choose your new chat background"; "lng_theme_sure_keep" = "Keep this theme?"; diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index 54528607b9..b4246336bb 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -20,10 +20,13 @@ settingsGeneralButton: InfoProfileButton(settingsSectionButton) { settingsButton: InfoProfileButton(settingsSectionButton) { padding: margins(22px, 13px, 22px, 11px); } +settingsPrivacyButton: InfoProfileButton(settingsButton) { + padding: margins(22px, 10px, 22px, 8px); +} settingsSectionSkip: 9px; settingsSectionIconLeft: 22px; settingsSeparatorPadding: margins(22px, infoProfileSkip, 0px, infoProfileSkip); -settingsButtonRightPosition: point(28px, 13px); +settingsButtonRightSkip: 28px; settingsButtonRight: FlatLabel(defaultFlatLabel) { textFg: windowActiveTextFg; style: boxTextStyle; @@ -85,12 +88,13 @@ settingsSubsectionTitle: FlatLabel(defaultFlatLabel) { } textFg: windowActiveTextFg; } -settingsSubsectionTitlePadding: margins(22px, 7px, 10px, 6px); +settingsSubsectionTitlePadding: margins(22px, 7px, 10px, 9px); settingsBackgroundPadding: margins(22px, 11px, 10px, 12px); settingsTileSkip: 15px; settingsFromGalleryTop: 2px; settingsFromFileTop: 14px; settingsPrivacySecurityPadding: 12px; +settingsPrivacySkip: 14px; settingsCloudPasswordLabel: FlatLabel(defaultFlatLabel) { textFg: windowSubTextFg; diff --git a/Telegram/SourceFiles/settings/settings_common.cpp b/Telegram/SourceFiles/settings/settings_common.cpp index f4de90b11d..cb471fb36c 100644 --- a/Telegram/SourceFiles/settings/settings_common.cpp +++ b/Telegram/SourceFiles/settings/settings_common.cpp @@ -119,7 +119,8 @@ not_null AddButton( void CreateRightLabel( not_null button, - rpl::producer label) { + rpl::producer label, + const style::InfoProfileButton &st) { const auto name = Ui::CreateChild( button.get(), std::move(label), @@ -128,9 +129,7 @@ void CreateRightLabel( name->widthValue(), button->widthValue() ) | rpl::start_with_next([=] { - name->moveToRight( - st::settingsButtonRightPosition.x(), - st::settingsButtonRightPosition.y()); + name->moveToRight(st::settingsButtonRightSkip, st.padding.top()); }, name->lifetime()); name->setAttribute(Qt::WA_TransparentForMouseEvents); } @@ -142,7 +141,7 @@ not_null AddButtonWithLabel( const style::InfoProfileButton &st, const style::icon *leftIcon) { const auto button = AddButton(container, text, st, leftIcon); - CreateRightLabel(button, std::move(label)); + CreateRightLabel(button, std::move(label), st); return button; } diff --git a/Telegram/SourceFiles/settings/settings_common.h b/Telegram/SourceFiles/settings/settings_common.h index a6cc280f0a..41dc97ce40 100644 --- a/Telegram/SourceFiles/settings/settings_common.h +++ b/Telegram/SourceFiles/settings/settings_common.h @@ -88,7 +88,8 @@ not_null AddButtonWithLabel( const style::icon *leftIcon = nullptr); void CreateRightLabel( not_null button, - rpl::producer label); + rpl::producer label, + const style::InfoProfileButton &st); void AddSubsectionTitle( not_null conatiner, LangKey text); diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index 1cbd30b323..a953d9c63a 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -57,7 +57,7 @@ void SetupSections( )->addClickHandler([=] { showOther(type); }); }; addSection( - lng_settings_section_info, + lng_settings_information, Type::Information, &st::settingsIconInformation); addSection( diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index eb2d0caa74..ae0c57773c 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -57,13 +57,13 @@ QString PrivacyBase(ApiWrap::Privacy::Option option) { } void SetupPrivacy(not_null container) { - AddSkip(container); - + AddSkip(container, st::settingsPrivacySkip); AddSubsectionTitle(container, lng_settings_privacy_title); + AddButton( container, lng_settings_blocked_users, - st::settingsButton + st::settingsPrivacyButton )->addClickHandler([] { const auto initBox = [](not_null box) { box->addButton(langFactory(lng_close), [=] { @@ -103,7 +103,7 @@ void SetupPrivacy(not_null container) { container, label, PrivacyString(key), - st::settingsButton + st::settingsPrivacyButton )->addClickHandler([=] { Ui::show(Box( controller(), @@ -138,8 +138,10 @@ not_null*> AddSeparator( st::settingsSeparatorPadding)); } -rpl::producer SetupLocalPasscode( - not_null container) { +void SetupLocalPasscode(not_null container) { + AddSkip(container); + AddSubsectionTitle(container, lng_settings_passcode_title); + auto has = PasscodeChanges( ) | rpl::map([] { return Global::LocalPasscode(); @@ -155,7 +157,7 @@ rpl::producer SetupLocalPasscode( object_ptr