From 5cabfb56e0caa4fb17e90809cd5927e906957ebf Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 13 Nov 2023 22:27:31 +0400 Subject: [PATCH 001/122] Fix "small" undef in Windows includes. --- Telegram/SourceFiles/platform/win/integration_win.h | 3 +-- Telegram/SourceFiles/platform/win/launcher_win.cpp | 2 +- Telegram/SourceFiles/platform/win/main_window_win.h | 3 ++- .../SourceFiles/platform/win/notifications_manager_win.cpp | 1 + Telegram/SourceFiles/platform/win/specific_win.cpp | 2 +- Telegram/SourceFiles/platform/win/specific_win.h | 3 ++- Telegram/SourceFiles/platform/win/windows_app_user_model_id.h | 2 -- Telegram/SourceFiles/platform/win/windows_dlls.h | 4 ++-- Telegram/SourceFiles/platform/win/windows_toast_activator.h | 2 ++ Telegram/lib_base | 2 +- Telegram/lib_storage | 2 +- Telegram/lib_ui | 2 +- Telegram/lib_webview | 2 +- 13 files changed, 16 insertions(+), 14 deletions(-) diff --git a/Telegram/SourceFiles/platform/win/integration_win.h b/Telegram/SourceFiles/platform/win/integration_win.h index 5e559b69a6deb2..dae97841196fad 100644 --- a/Telegram/SourceFiles/platform/win/integration_win.h +++ b/Telegram/SourceFiles/platform/win/integration_win.h @@ -7,13 +7,12 @@ For license and copyright information please follow this link: */ #pragma once +#include "base/platform/win/base_windows_shlobj_h.h" #include "base/platform/win/base_windows_winrt.h" #include "platform/platform_integration.h" #include -#include - namespace Platform { class WindowsIntegration final diff --git a/Telegram/SourceFiles/platform/win/launcher_win.cpp b/Telegram/SourceFiles/platform/win/launcher_win.cpp index 5b19892bfe9734..d6bf912ba5d3d9 100644 --- a/Telegram/SourceFiles/platform/win/launcher_win.cpp +++ b/Telegram/SourceFiles/platform/win/launcher_win.cpp @@ -9,8 +9,8 @@ For license and copyright information please follow this link: #include "core/crash_reports.h" #include "core/update_checker.h" -#include "base/platform/win/base_windows_h.h" +#include #include #include diff --git a/Telegram/SourceFiles/platform/win/main_window_win.h b/Telegram/SourceFiles/platform/win/main_window_win.h index 9459fe50f46994..856bee773ef1c0 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.h +++ b/Telegram/SourceFiles/platform/win/main_window_win.h @@ -8,9 +8,10 @@ For license and copyright information please follow this link: #pragma once #include "platform/platform_main_window.h" -#include "base/platform/win/base_windows_h.h" #include "base/flags.h" +#include + namespace Ui { class PopupMenu; } // namespace Ui diff --git a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp index 41bf5f786aeb0f..be084063641a8f 100644 --- a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp +++ b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp @@ -10,6 +10,7 @@ For license and copyright information please follow this link: #include "window/notifications_utilities.h" #include "window/window_session_controller.h" #include "base/platform/win/base_windows_co_task_mem.h" +#include "base/platform/win/base_windows_rpcndr_h.h" #include "base/platform/win/base_windows_winrt.h" #include "base/platform/base_platform_info.h" #include "base/platform/win/wrl/wrl_module_h.h" diff --git a/Telegram/SourceFiles/platform/win/specific_win.cpp b/Telegram/SourceFiles/platform/win/specific_win.cpp index 3f504357d6a6db..77cc18de50d42e 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.cpp +++ b/Telegram/SourceFiles/platform/win/specific_win.cpp @@ -14,6 +14,7 @@ For license and copyright information please follow this link: #include "platform/win/windows_autostart_task.h" #include "base/platform/base_platform_info.h" #include "base/platform/win/base_windows_co_task_mem.h" +#include "base/platform/win/base_windows_shlobj_h.h" #include "base/platform/win/base_windows_winrt.h" #include "base/call_delayed.h" #include "ui/boxes/confirm_box.h" @@ -41,7 +42,6 @@ For license and copyright information please follow this link: #include #include -#include #include #include #include diff --git a/Telegram/SourceFiles/platform/win/specific_win.h b/Telegram/SourceFiles/platform/win/specific_win.h index acb2eda927170f..56f73a1b41d967 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.h +++ b/Telegram/SourceFiles/platform/win/specific_win.h @@ -8,7 +8,8 @@ For license and copyright information please follow this link: #pragma once #include "platform/platform_specific.h" -#include "base/platform/win/base_windows_h.h" + +#include namespace Data { class LocationPoint; diff --git a/Telegram/SourceFiles/platform/win/windows_app_user_model_id.h b/Telegram/SourceFiles/platform/win/windows_app_user_model_id.h index 4f69019ebde86e..76a7a331296c80 100644 --- a/Telegram/SourceFiles/platform/win/windows_app_user_model_id.h +++ b/Telegram/SourceFiles/platform/win/windows_app_user_model_id.h @@ -7,8 +7,6 @@ For license and copyright information please follow this link: */ #pragma once -#include "base/platform/win/base_windows_h.h" - #include namespace Platform { diff --git a/Telegram/SourceFiles/platform/win/windows_dlls.h b/Telegram/SourceFiles/platform/win/windows_dlls.h index d97eeab92dee7c..26f4783761ae75 100644 --- a/Telegram/SourceFiles/platform/win/windows_dlls.h +++ b/Telegram/SourceFiles/platform/win/windows_dlls.h @@ -7,10 +7,10 @@ For license and copyright information please follow this link: */ #pragma once -#include "base/platform/win/base_windows_h.h" +#include "base/platform/win/base_windows_shlobj_h.h" +#include #include -#include #include #include #include diff --git a/Telegram/SourceFiles/platform/win/windows_toast_activator.h b/Telegram/SourceFiles/platform/win/windows_toast_activator.h index ba6c2b32cd9dc8..0c859421f6eccb 100644 --- a/Telegram/SourceFiles/platform/win/windows_toast_activator.h +++ b/Telegram/SourceFiles/platform/win/windows_toast_activator.h @@ -7,7 +7,9 @@ For license and copyright information please follow this link: */ #pragma once +#include "base/platform/win/base_windows_rpcndr_h.h" #include "windows_toastactivator_h.h" + #include "base/platform/win/wrl/wrl_implements_h.h" // {F11932D3-6110-4BBC-9B02-B2EC07A1BD19} diff --git a/Telegram/lib_base b/Telegram/lib_base index fe4f0a72d2041a..5432626ef2af59 160000 --- a/Telegram/lib_base +++ b/Telegram/lib_base @@ -1 +1 @@ -Subproject commit fe4f0a72d2041a860c67a81a70f2e4b6f845d9fb +Subproject commit 5432626ef2af59f55110c3bf17556d16c48a4ac3 diff --git a/Telegram/lib_storage b/Telegram/lib_storage index 1dfd1c186dd67e..de731885163bc1 160000 --- a/Telegram/lib_storage +++ b/Telegram/lib_storage @@ -1 +1 @@ -Subproject commit 1dfd1c186dd67e8de5f0721e6fae487a05f3ea94 +Subproject commit de731885163bc1b3fe3095413453777ee89a8561 diff --git a/Telegram/lib_ui b/Telegram/lib_ui index f9b24c75512bc5..fee301f94197d3 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit f9b24c75512bc5f73b9ec5e6612858394582a328 +Subproject commit fee301f94197d3351f2f20671c329b81540e63e2 diff --git a/Telegram/lib_webview b/Telegram/lib_webview index aab27269ff8aad..3495eb8dd8f4e2 160000 --- a/Telegram/lib_webview +++ b/Telegram/lib_webview @@ -1 +1 @@ -Subproject commit aab27269ff8aad5dfaf7372db10bff700fdb5fe9 +Subproject commit 3495eb8dd8f4e2dab9493b4a698e5006fadbca47 From 830e9a59537dd8720735c6b0612230aac486b74c Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 14 Nov 2023 21:28:24 +0400 Subject: [PATCH 002/122] Version 4.11.8. (macOS only) - Fix phrases on macOS by doing a clean rebuild. --- Telegram/Resources/uwp/AppX/AppxManifest.xml | 2 +- Telegram/Resources/winrc/Telegram.rc | 8 ++++---- Telegram/Resources/winrc/Updater.rc | 8 ++++---- Telegram/SourceFiles/core/version.h | 4 ++-- Telegram/build/version | 8 ++++---- changelog.txt | 4 ++++ 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Telegram/Resources/uwp/AppX/AppxManifest.xml b/Telegram/Resources/uwp/AppX/AppxManifest.xml index b206163a2dd398..e11ecd4d40eee8 100644 --- a/Telegram/Resources/uwp/AppX/AppxManifest.xml +++ b/Telegram/Resources/uwp/AppX/AppxManifest.xml @@ -10,7 +10,7 @@ + Version="4.11.8.0" /> Telegram Desktop Telegram Messenger LLP diff --git a/Telegram/Resources/winrc/Telegram.rc b/Telegram/Resources/winrc/Telegram.rc index aeacecdf85fc87..36f4aeb25af1a7 100644 --- a/Telegram/Resources/winrc/Telegram.rc +++ b/Telegram/Resources/winrc/Telegram.rc @@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,11,7,0 - PRODUCTVERSION 4,11,7,0 + FILEVERSION 4,11,8,0 + PRODUCTVERSION 4,11,8,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -62,10 +62,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram FZ-LLC" VALUE "FileDescription", "Telegram Desktop" - VALUE "FileVersion", "4.11.7.0" + VALUE "FileVersion", "4.11.8.0" VALUE "LegalCopyright", "Copyright (C) 2014-2023" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "4.11.7.0" + VALUE "ProductVersion", "4.11.8.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/Resources/winrc/Updater.rc b/Telegram/Resources/winrc/Updater.rc index 768f1d460fee31..61f663802c438b 100644 --- a/Telegram/Resources/winrc/Updater.rc +++ b/Telegram/Resources/winrc/Updater.rc @@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,11,7,0 - PRODUCTVERSION 4,11,7,0 + FILEVERSION 4,11,8,0 + PRODUCTVERSION 4,11,8,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -53,10 +53,10 @@ BEGIN BEGIN VALUE "CompanyName", "Telegram FZ-LLC" VALUE "FileDescription", "Telegram Desktop Updater" - VALUE "FileVersion", "4.11.7.0" + VALUE "FileVersion", "4.11.8.0" VALUE "LegalCopyright", "Copyright (C) 2014-2023" VALUE "ProductName", "Telegram Desktop" - VALUE "ProductVersion", "4.11.7.0" + VALUE "ProductVersion", "4.11.8.0" END END BLOCK "VarFileInfo" diff --git a/Telegram/SourceFiles/core/version.h b/Telegram/SourceFiles/core/version.h index 7e21b523843155..aefd10cbfc563e 100644 --- a/Telegram/SourceFiles/core/version.h +++ b/Telegram/SourceFiles/core/version.h @@ -22,7 +22,7 @@ constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs; constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs; constexpr auto AppName = "Telegram Desktop"_cs; constexpr auto AppFile = "Telegram"_cs; -constexpr auto AppVersion = 4011007; -constexpr auto AppVersionStr = "4.11.7"; +constexpr auto AppVersion = 4011008; +constexpr auto AppVersionStr = "4.11.8"; constexpr auto AppBetaVersion = false; constexpr auto AppAlphaVersion = TDESKTOP_ALPHA_VERSION; diff --git a/Telegram/build/version b/Telegram/build/version index 065ee5c8096fb3..7c8f345a299d7a 100644 --- a/Telegram/build/version +++ b/Telegram/build/version @@ -1,7 +1,7 @@ -AppVersion 4011007 +AppVersion 4011008 AppVersionStrMajor 4.11 -AppVersionStrSmall 4.11.7 -AppVersionStr 4.11.7 +AppVersionStrSmall 4.11.8 +AppVersionStr 4.11.8 BetaChannel 0 AlphaVersion 0 -AppVersionOriginal 4.11.7 +AppVersionOriginal 4.11.8 diff --git a/changelog.txt b/changelog.txt index c7e56597b04d04..e823780a5cf981 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +4.11.8 (14.11.23) + +- Fix phrases on macOS by doing a clean rebuild. + 4.11.7 (13.11.23) - Fix sending media files with quote replies. From 497aa6dbc83cbb7f17b22c8fd98a7540c06a43dd Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 14 Nov 2023 21:48:34 +0300 Subject: [PATCH 003/122] Added ability to see admins who promoted or restricted participants. --- .../boxes/peers/edit_participants_box.cpp | 34 +++++++++++++++---- .../boxes/peers/edit_participants_box.h | 1 - 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp index 1801cc1540ff06..ff5926608167ff 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp @@ -8,7 +8,6 @@ For license and copyright information please follow this link: #include "boxes/peers/edit_participants_box.h" #include "api/api_chat_participants.h" -#include "boxes/peer_list_controllers.h" #include "boxes/peers/edit_participant_box.h" #include "boxes/peers/add_participants_box.h" #include "boxes/peers/prepare_short_info_box.h" // PrepareShortInfoBox @@ -21,7 +20,6 @@ For license and copyright information please follow this link: #include "mtproto/mtproto_config.h" #include "apiwrap.h" #include "lang/lang_keys.h" -#include "mainwidget.h" #include "dialogs/dialogs_indexed_list.h" #include "data/data_peer_values.h" #include "data/data_session.h" @@ -33,7 +31,6 @@ For license and copyright information please follow this link: #include "base/unixtime.h" #include "ui/effects/outline_segments.h" #include "ui/widgets/popup_menu.h" -#include "ui/ui_utility.h" #include "info/profile/info_profile_values.h" #include "window/window_session_controller.h" #include "history/history.h" @@ -426,9 +423,7 @@ bool ParticipantsAdditionalData::isExternal( bool ParticipantsAdditionalData::isKicked( not_null participant) const { - return _peer->isChat() - ? false - : _kicked.find(participant) != end(_kicked); + return !_peer->isChat() && (_kicked.find(participant) != end(_kicked)); } UserData *ParticipantsAdditionalData::adminPromotedBy( @@ -1645,6 +1640,33 @@ base::unique_qptr ParticipantsBoxController::rowContextMenu( ? &st::menuIconProfile : &st::menuIconInfo)); } + if (const auto by = _additional.restrictedBy(participant)) { + result->addAction( + (_role == Role::Kicked + ? tr::lng_channel_banned_status_removed_by + : tr::lng_channel_banned_status_restricted_by)( + tr::now, + lt_user, + by->name()), + crl::guard(this, [=] { + _navigation->parentController()->show( + PrepareShortInfoBox(by, _navigation)); + }), + &st::menuIconAdmin); + } else if (user) { + if (const auto by = _additional.adminPromotedBy(user)) { + result->addAction( + tr::lng_channel_admin_status_promoted_by( + tr::now, + lt_user, + by->name()), + crl::guard(this, [=] { + _navigation->parentController()->show( + PrepareShortInfoBox(by, _navigation)); + }), + &st::menuIconAdmin); + } + } if (_role == Role::Kicked) { if (_peer->isMegagroup() && _additional.canRestrictParticipant(participant)) { diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.h b/Telegram/SourceFiles/boxes/peers/edit_participants_box.h index 0882f214a3e9fd..d43d99e274f474 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.h +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.h @@ -8,7 +8,6 @@ For license and copyright information please follow this link: #pragma once #include -#include "boxes/peer_list_box.h" #include "mtproto/sender.h" #include "base/timer.h" #include "base/weak_ptr.h" From f6cb9072d25baaf2f5006ff7a8b0aaf1102c85be Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 14 Nov 2023 22:12:53 +0300 Subject: [PATCH 004/122] Moved AddSkip and AddDivier from Settings namespace to separate module. --- Telegram/SourceFiles/api/api_chat_filters.cpp | 3 +- .../SourceFiles/boxes/auto_download_box.cpp | 4 +- Telegram/SourceFiles/boxes/background_box.cpp | 9 +- .../boxes/background_preview_box.cpp | 3 +- .../SourceFiles/boxes/create_poll_box.cpp | 15 +-- .../SourceFiles/boxes/edit_privacy_box.cpp | 7 +- .../boxes/filters/edit_filter_box.cpp | 29 +++--- .../boxes/filters/edit_filter_links.cpp | 13 +-- Telegram/SourceFiles/boxes/language_box.cpp | 9 +- .../boxes/peers/choose_peer_box.cpp | 5 +- .../boxes/peers/edit_forum_topic_box.cpp | 9 +- .../boxes/peers/edit_linked_chat_box.cpp | 9 +- .../boxes/peers/edit_members_visible.cpp | 11 +-- .../boxes/peers/edit_peer_color_box.cpp | 9 +- .../boxes/peers/edit_peer_info_box.cpp | 43 +++------ .../boxes/peers/edit_peer_invite_link.cpp | 19 ++-- .../boxes/peers/edit_peer_invite_links.cpp | 5 +- .../boxes/peers/edit_peer_reactions.cpp | 11 ++- .../boxes/peers/edit_peer_type_box.cpp | 27 +++--- .../boxes/peers/edit_peer_usernames_list.cpp | 8 +- .../SourceFiles/boxes/premium_limits_box.cpp | 28 +++--- .../SourceFiles/boxes/premium_preview_box.cpp | 4 +- .../boxes/reactions_settings_box.cpp | 3 +- Telegram/SourceFiles/boxes/ringtones_box.cpp | 9 +- Telegram/SourceFiles/boxes/sessions_box.cpp | 7 +- Telegram/SourceFiles/boxes/translate_box.cpp | 16 ++-- Telegram/SourceFiles/boxes/username_box.cpp | 9 +- .../calls/group/calls_group_rtmp.cpp | 18 ++-- .../calls/group/calls_group_settings.cpp | 25 +++-- .../controls/history_view_draft_options.cpp | 9 +- .../info/boosts/create_giveaway_box.cpp | 63 ++++++------ .../info/boosts/info_boosts_inner_widget.cpp | 59 ++++++------ .../info/profile/info_profile_actions.cpp | 14 +-- .../info_statistics_inner_widget.cpp | 35 +++---- .../info_statistics_list_controllers.cpp | 9 +- .../userpic/info_userpic_colors_editor.cpp | 14 +-- .../menu/menu_antispam_validator.cpp | 9 +- .../payments/ui/payments_form_summary.cpp | 23 ++--- .../settings_cloud_password_common.cpp | 9 +- .../settings_cloud_password_email.cpp | 5 +- .../settings_cloud_password_email_confirm.cpp | 3 +- .../settings_cloud_password_hint.cpp | 3 +- .../settings_cloud_password_input.cpp | 5 +- .../settings_cloud_password_manage.cpp | 7 +- .../settings_cloud_password_start.cpp | 1 + .../settings/settings_advanced.cpp | 3 +- .../settings/settings_blocked_peers.cpp | 13 +-- .../SourceFiles/settings/settings_calls.cpp | 31 +++--- .../SourceFiles/settings/settings_chat.cpp | 96 +++++++++---------- .../SourceFiles/settings/settings_common.cpp | 39 -------- .../SourceFiles/settings/settings_common.h | 11 --- .../settings/settings_experimental.cpp | 19 ++-- .../SourceFiles/settings/settings_folders.cpp | 16 ++-- .../settings/settings_global_ttl.cpp | 7 +- .../settings/settings_information.cpp | 14 ++- .../SourceFiles/settings/settings_intro.cpp | 35 +++---- .../settings/settings_local_passcode.cpp | 11 ++- .../SourceFiles/settings/settings_main.cpp | 29 +++--- .../settings/settings_notifications.cpp | 67 ++++++------- .../settings/settings_notifications_type.cpp | 11 ++- .../settings/settings_power_saving.cpp | 15 +-- .../SourceFiles/settings/settings_premium.cpp | 25 ++--- .../settings/settings_privacy_controllers.cpp | 27 ++++-- .../settings/settings_privacy_security.cpp | 45 ++++----- .../settings/settings_websites.cpp | 23 ++--- Telegram/SourceFiles/ui/vertical_list.cpp | 58 +++++++++++ Telegram/SourceFiles/ui/vertical_list.h | 31 ++++++ .../SourceFiles/window/window_main_menu.cpp | 24 ++--- Telegram/cmake/td_ui.cmake | 2 + 69 files changed, 666 insertions(+), 621 deletions(-) create mode 100644 Telegram/SourceFiles/ui/vertical_list.cpp create mode 100644 Telegram/SourceFiles/ui/vertical_list.h diff --git a/Telegram/SourceFiles/api/api_chat_filters.cpp b/Telegram/SourceFiles/api/api_chat_filters.cpp index c045263ae1daf3..931e9b3e33f4f2 100644 --- a/Telegram/SourceFiles/api/api_chat_filters.cpp +++ b/Telegram/SourceFiles/api/api_chat_filters.cpp @@ -26,6 +26,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" #include "ui/filter_icons.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_filter_icons.h" #include "styles/style_layers.h" @@ -341,7 +342,7 @@ void ToggleChatsController::setupAboveWidget() { _addedTopWidget = container->add(object_ptr(container)); const auto realAbove = container->add( object_ptr(container)); - AddDivider(realAbove); + Ui::AddDivider(realAbove); const auto totalCount = [&] { if (_chats.empty()) { return _additional.size(); diff --git a/Telegram/SourceFiles/boxes/auto_download_box.cpp b/Telegram/SourceFiles/boxes/auto_download_box.cpp index b77cf4a4f158c6..ed6ae59a330cb6 100644 --- a/Telegram/SourceFiles/boxes/auto_download_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_download_box.cpp @@ -12,6 +12,7 @@ For license and copyright information please follow this link: #include "main/main_session_settings.h" #include "data/data_session.h" #include "data/data_auto_download.h" +#include "ui/vertical_list.h" #include "ui/widgets/continuous_sliders.h" #include "ui/widgets/buttons.h" #include "ui/wrap/vertical_layout.h" @@ -35,7 +36,6 @@ not_null AddSizeLimitSlider( not_null container, const base::flat_map &values, int64 defaultValue) { - using namespace Settings; using Pair = base::flat_map::value_type; const auto limits = Ui::CreateChild>( @@ -46,7 +46,7 @@ not_null AddSizeLimitSlider( [](Pair pair) { return pair.second; })->second; const auto startLimit = currentLimit ? currentLimit : defaultValue; const auto result = Ui::CreateChild(container.get(), startLimit); - AddButtonWithLabel( + Settings::AddButtonWithLabel( container, tr::lng_media_size_limit(), limits->events_starting_with_copy( diff --git a/Telegram/SourceFiles/boxes/background_box.cpp b/Telegram/SourceFiles/boxes/background_box.cpp index a7b92aa328af73..a18df1bfe5113b 100644 --- a/Telegram/SourceFiles/boxes/background_box.cpp +++ b/Telegram/SourceFiles/boxes/background_box.cpp @@ -13,6 +13,7 @@ For license and copyright information please follow this link: #include "ui/chat/attach/attach_extensions.h" #include "ui/chat/chat_theme.h" #include "ui/ui_utility.h" +#include "ui/vertical_list.h" #include "main/main_session.h" #include "apiwrap.h" #include "mtproto/sender.h" @@ -24,7 +25,7 @@ For license and copyright information please follow this link: #include "data/data_document_media.h" #include "boxes/background_preview_box.h" #include "info/profile/info_profile_icon.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // CreateButton. #include "ui/boxes/confirm_box.h" #include "ui/widgets/buttons.h" #include "window/window_session_controller.h" @@ -165,7 +166,7 @@ void BackgroundBox::prepare() { auto wrap = object_ptr(this); const auto container = wrap.data(); - Settings::AddSkip(container); + Ui::AddSkip(container); const auto button = container->add(Settings::CreateButton( container, @@ -180,8 +181,8 @@ void BackgroundBox::prepare() { chooseFromFile(); }); - Settings::AddSkip(container); - Settings::AddDivider(container); + Ui::AddSkip(container); + Ui::AddDivider(container); _inner = container->add( object_ptr(this, &_controller->session(), _forPeer)); diff --git a/Telegram/SourceFiles/boxes/background_preview_box.cpp b/Telegram/SourceFiles/boxes/background_preview_box.cpp index a920aa76a5e01f..ba8953b52757a3 100644 --- a/Telegram/SourceFiles/boxes/background_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/background_preview_box.cpp @@ -20,6 +20,7 @@ For license and copyright information please follow this link: #include "ui/widgets/continuous_sliders.h" #include "ui/wrap/slide_wrap.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/ui_utility.h" #include "history/history.h" #include "history/history_item.h" @@ -293,7 +294,7 @@ void BackgroundPreviewBox::createDimmingSlider(bool dark) { const auto equals = (dark == Window::Theme::IsNightMode()); const auto inner = Ui::CreateChild(_dimmingContent); inner->show(); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( inner, tr::lng_background_dimming(), style::margins(0, st::settingsSectionSkip, 0, 0), diff --git a/Telegram/SourceFiles/boxes/create_poll_box.cpp b/Telegram/SourceFiles/boxes/create_poll_box.cpp index ef53b2d6210d31..618376d0ae7f2d 100644 --- a/Telegram/SourceFiles/boxes/create_poll_box.cpp +++ b/Telegram/SourceFiles/boxes/create_poll_box.cpp @@ -19,6 +19,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" #include "ui/text/text_utilities.h" +#include "ui/vertical_list.h" #include "main/main_session.h" #include "core/application.h" #include "core/core_settings.h" @@ -790,7 +791,7 @@ not_null CreatePollBox::setupQuestion( using namespace Settings; const auto session = &_controller->session(); - AddSubsectionTitle(container, tr::lng_polls_create_question()); + Ui::AddSubsectionTitle(container, tr::lng_polls_create_question()); const auto question = container->add( object_ptr( container, @@ -841,8 +842,8 @@ not_null CreatePollBox::setupSolution( const auto inner = outer->entity(); const auto session = &_controller->session(); - AddSkip(inner); - AddSubsectionTitle(inner, tr::lng_polls_solution_title()); + Ui::AddSkip(inner); + Ui::AddSubsectionTitle(inner, tr::lng_polls_solution_title()); const auto solution = inner->add( object_ptr( inner, @@ -902,8 +903,8 @@ object_ptr CreatePollBox::setupContent() { const auto container = result.data(); const auto question = setupQuestion(container); - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); container->add( object_ptr( container, @@ -939,8 +940,8 @@ object_ptr CreatePollBox::setupContent() { options->focusFirst(); }, question->lifetime()); - AddSkip(container); - AddSubsectionTitle(container, tr::lng_polls_create_settings()); + Ui::AddSkip(container); + Ui::AddSubsectionTitle(container, tr::lng_polls_create_settings()); const auto anonymous = (!(_disabled & PollData::Flag::PublicVotes)) ? container->add( diff --git a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp index e5c601881fcbae..198ec9e93dac5a 100644 --- a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp @@ -13,6 +13,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "history/history.h" #include "boxes/peer_list_controllers.h" #include "settings/settings_common.h" @@ -321,7 +322,7 @@ void EditPrivacyBox::setupContent() { content->add(std::move(above)); } - AddSubsectionTitle( + Ui::AddSubsectionTitle( content, _controller->optionsTitleKey(), { 0, st::settingsPrivacySkipTop, 0, 0 }); @@ -345,8 +346,8 @@ void EditPrivacyBox::setupContent() { content->add(std::move(middle)); } - AddSkip(content); - AddSubsectionTitle( + Ui::AddSkip(content); + Ui::AddSubsectionTitle( content, tr::lng_edit_privacy_exceptions(), { 0, st::settingsPrivacySkipTop, 0, 0 }); diff --git a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp index 0c3760831ba832..2b8e293a9a493d 100644 --- a/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp +++ b/Telegram/SourceFiles/boxes/filters/edit_filter_box.cpp @@ -21,6 +21,7 @@ For license and copyright information please follow this link: #include "ui/filter_icons.h" #include "ui/filter_icon_panel.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "data/data_channel.h" #include "data/data_chat_filters.h" #include "data/data_peer.h" @@ -658,10 +659,10 @@ void EditFilterBox( name->setFocusFast(); }); - AddSkip(content); - AddDivider(content); - AddSkip(content); - AddSubsectionTitle(content, tr::lng_filters_include()); + Ui::AddSkip(content); + Ui::AddDivider(content); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_filters_include()); const auto includeAdd = AddButton( content, @@ -676,9 +677,9 @@ void EditFilterBox( kTypes, &Data::ChatFilter::always); - AddSkip(content); - AddDividerText(content, tr::lng_filters_include_about()); - AddSkip(content); + Ui::AddSkip(content); + Ui::AddDividerText(content, tr::lng_filters_include_about()); + Ui::AddSkip(content); auto excludeWrap = content->add( object_ptr>( @@ -688,7 +689,7 @@ void EditFilterBox( excludeWrap->toggleOn(state->chatlist.value() | rpl::map(!_1)); const auto excludeInner = excludeWrap->entity(); - AddSubsectionTitle(excludeInner, tr::lng_filters_exclude()); + Ui::AddSubsectionTitle(excludeInner, tr::lng_filters_exclude()); const auto excludeAdd = AddButton( excludeInner, @@ -703,9 +704,9 @@ void EditFilterBox( kExcludeTypes, &Data::ChatFilter::never); - AddSkip(excludeInner); - AddDividerText(excludeInner, tr::lng_filters_exclude_about()); - AddSkip(excludeInner); + Ui::AddSkip(excludeInner); + Ui::AddDividerText(excludeInner, tr::lng_filters_exclude_about()); + Ui::AddSkip(excludeInner); const auto collect = [=]() -> std::optional { const auto title = name->getLastText().trimmed(); @@ -726,7 +727,7 @@ void EditFilterBox( return rules.withTitle(title); }; - AddSubsectionTitle( + Ui::AddSubsectionTitle( content, rpl::conditional( state->hasLinks.value(), @@ -806,8 +807,8 @@ void EditFilterBox( })); })); }, createLink->lifetime()); - AddSkip(content); - AddDividerText( + Ui::AddSkip(content); + Ui::AddDividerText( content, rpl::conditional( state->hasLinks.value(), diff --git a/Telegram/SourceFiles/boxes/filters/edit_filter_links.cpp b/Telegram/SourceFiles/boxes/filters/edit_filter_links.cpp index 9dcf6fd804e0a6..3ca2c4100768eb 100644 --- a/Telegram/SourceFiles/boxes/filters/edit_filter_links.cpp +++ b/Telegram/SourceFiles/boxes/filters/edit_filter_links.cpp @@ -31,6 +31,7 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/wrap/slide_wrap.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_info.h" #include "styles/style_layers.h" @@ -145,7 +146,7 @@ void ChatFilterLinkBox( st::settingsSubsectionTitlePadding.right(), st::settingsSectionSkip * 2)); labelField->setMaxLength(kMaxLinkTitleLength); - Settings::AddDivider(container); + AddDivider(container); box->setFocusCallback([=] { labelField->setFocusFast(); @@ -616,7 +617,7 @@ void LinkController::addLinkBlock(not_null container) { &st::menuIconDelete); return result; }; - AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_filters_link_subtitle(), st::filterLinkSubsectionTitlePadding); @@ -637,11 +638,11 @@ void LinkController::addLinkBlock(not_null container) { AddCopyShareLinkButtons(container, copyLink, shareLink); - AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2); + Ui::AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2); - AddSkip(container); + Ui::AddSkip(container); - AddDivider(container); + Ui::AddDivider(container); } void LinkController::prepare() { @@ -1152,7 +1153,7 @@ void AddFilterSubtitleWithToggles( font->width(tr::lng_filters_by_link_select(tr::now)), font->width(tr::lng_filters_by_link_deselect(tr::now)))); } - const auto title = Settings::AddSubsectionTitle( + const auto title = Ui::AddSubsectionTitle( container, std::move(text), padding); diff --git a/Telegram/SourceFiles/boxes/language_box.cpp b/Telegram/SourceFiles/boxes/language_box.cpp index dca50a08c26954..98181ebe4644a8 100644 --- a/Telegram/SourceFiles/boxes/language_box.cpp +++ b/Telegram/SourceFiles/boxes/language_box.cpp @@ -24,6 +24,7 @@ For license and copyright information please follow this link: #include "ui/toast/toast.h" #include "ui/text/text_options.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "storage/localstorage.h" #include "boxes/premium_preview_box.h" #include "boxes/translate_box.h" @@ -34,7 +35,7 @@ For license and copyright information please follow this link: #include "core/application.h" #include "lang/lang_instance.h" #include "lang/lang_cloud_manager.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // CreateButton. #include "spellcheck/spellcheck_types.h" #include "window/window_session_controller.h" #include "styles/style_layers.h" @@ -1250,10 +1251,8 @@ void LanguageBox::setupTop(not_null container) { translateSkip->setClickedCallback([=] { uiShow()->showBox(Ui::EditSkipTranslationLanguages()); }); - Settings::AddSkip(container); - Settings::AddDividerText( - container, - tr::lng_translate_settings_about()); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_translate_settings_about()); } void LanguageBox::keyPressEvent(QKeyEvent *e) { diff --git a/Telegram/SourceFiles/boxes/peers/choose_peer_box.cpp b/Telegram/SourceFiles/boxes/peers/choose_peer_box.cpp index 7e27128c417003..1a5ad163e4b4bc 100644 --- a/Telegram/SourceFiles/boxes/peers/choose_peer_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/choose_peer_box.cpp @@ -25,6 +25,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" @@ -352,7 +353,7 @@ void ChoosePeerBoxController::prepareRestrictions() { const auto raw = above.data(); auto rows = RestrictionsList(_query); if (!rows.empty()) { - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( raw, tr::lng_request_peer_requirements(), { 0, st::membersMarginTop, 0, 0 }); @@ -364,7 +365,7 @@ void ChoosePeerBoxController::prepareRestrictions() { separator + rows.join(separator), st::requestPeerRestriction), { skip, 0, skip, st::membersMarginTop }); - Settings::AddDivider(raw); + Ui::AddDivider(raw); } const auto make = [&](tr::phrase<> text, const style::icon &st) { auto button = raw->add( diff --git a/Telegram/SourceFiles/boxes/peers/edit_forum_topic_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_forum_topic_box.cpp index 47674bd5ef6673..ce797fba20bcff 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_forum_topic_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_forum_topic_box.cpp @@ -11,7 +11,7 @@ For license and copyright information please follow this link: #include "ui/widgets/shadow.h" #include "ui/effects/emoji_fly_animation.h" #include "ui/abstract_button.h" -#include "ui/color_int_conversion.h" +#include "ui/vertical_list.h" #include "data/data_channel.h" #include "data/data_document.h" #include "data/data_forum.h" @@ -39,7 +39,6 @@ For license and copyright information please follow this link: #include "styles/style_dialogs.h" #include "styles/style_chat_helpers.h" -namespace { namespace { constexpr auto kDefaultIconId = DocumentId(0x7FFF'FFFF'FFFF'FFFFULL); @@ -114,8 +113,6 @@ bool DefaultIconEmoji::readyInDefaultState() { return true; } -} // namespace - [[nodiscard]] int EditIconSize() { const auto tag = Data::CustomEmojiManager::SizeTag::Large; return Data::FrameSizeFromTag(tag) / style::DevicePixelRatio(); @@ -479,9 +476,7 @@ void EditForumTopicBox( }, title->lifetime()); if (!topic || !topic->isGeneral()) { - Settings::AddDividerText( - top, - tr::lng_forum_choose_title_and_icon()); + Ui::AddDividerText(top, tr::lng_forum_choose_title_and_icon()); box->setScrollStyle(st::reactPanelScroll); diff --git a/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp index c3e4b3d3449d38..3e2c95da200cc9 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp @@ -10,9 +10,10 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "data/data_channel.h" #include "data/data_chat.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // AddButton. #include "data/data_changes.h" #include "ui/widgets/labels.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/wrap/vertical_layout.h" #include "ui/text/text_utilities.h" // Ui::Text::RichLangValue @@ -267,7 +268,7 @@ void Controller::choose(not_null chat) { if (!chat) { Assert(channel->isBroadcast()); - Settings::AddSkip(above); + Ui::AddSkip(above); Settings::AddButton( above, tr::lng_manage_discussion_group_create(), @@ -294,9 +295,9 @@ void Controller::choose(not_null chat) { st::infoUnlinkChatButton, { &st::menuIconRemove } )->addClickHandler([=] { callback(nullptr); }); - Settings::AddSkip(below); + Ui::AddSkip(below); } - Settings::AddDividerText( + Ui::AddDividerText( below, (channel->isBroadcast() ? tr::lng_manage_discussion_group_posted diff --git a/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp b/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp index ed0a363a263ee9..8cf55a1e372e99 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_members_visible.cpp @@ -13,7 +13,8 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/wrap/slide_wrap.h" #include "ui/widgets/buttons.h" -#include "settings/settings_common.h" +#include "ui/vertical_list.h" +#include "settings/settings_common.h" // IconDescriptor. #include "main/main_account.h" #include "main/main_app_config.h" #include "main/main_session.h" @@ -45,7 +46,7 @@ namespace { struct State { rpl::event_stream toggled; }; - Settings::AddSkip(container); + Ui::AddSkip(container); const auto state = container->lifetime().make_state(); const auto button = container->add( EditPeerInfoBox::CreateButton( @@ -58,10 +59,8 @@ namespace { ))->toggleOn(rpl::single( (megagroup->flags() & ChannelDataFlag::ParticipantsHidden) != 0 ) | rpl::then(state->toggled.events())); - Settings::AddSkip(container); - Settings::AddDividerText( - container, - tr::lng_profile_hide_participants_about()); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_profile_hide_participants_about()); button->toggledValue( ) | rpl::start_with_next([=](bool toggled) { diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_color_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_color_box.cpp index 1913675afb5f93..b575768aa7af17 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_color_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_color_box.cpp @@ -37,6 +37,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "window/themes/window_theme.h" #include "window/section_widget.h" #include "window/window_session_controller.h" @@ -812,11 +813,11 @@ void EditPeerColorBox( { margin, skip, margin, skip }); const auto container = box->verticalLayout(); - AddDividerText(container, peer->isSelf() + Ui::AddDividerText(container, peer->isSelf() ? tr::lng_settings_color_about() : tr::lng_settings_color_about_channel()); - AddSkip(container, st::settingsColorSampleSkip); + Ui::AddSkip(container, st::settingsColorSampleSkip); container->add(CreateEmojiIconButton( container, @@ -826,8 +827,8 @@ void EditPeerColorBox( state->emojiId.value(), [=](DocumentId id) { state->emojiId = id; })); - AddSkip(container, st::settingsColorSampleSkip); - AddDividerText(container, peer->isSelf() + Ui::AddSkip(container, st::settingsColorSampleSkip); + Ui::AddDividerText(container, peer->isSelf() ? tr::lng_settings_color_emoji_about() : tr::lng_settings_color_emoji_about_channel()); diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp index 0012d8a0f588a7..1be539704a2a7a 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp @@ -11,7 +11,6 @@ For license and copyright information please follow this link: #include "api/api_peer_photo.h" #include "api/api_user_names.h" #include "main/main_session.h" -#include "boxes/add_contact_box.h" #include "ui/boxes/confirm_box.h" #include "boxes/peers/edit_participants_box.h" #include "boxes/peers/edit_peer_color_box.h" @@ -23,10 +22,8 @@ For license and copyright information please follow this link: #include "boxes/peers/edit_linked_chat_box.h" #include "boxes/peers/edit_peer_requests_box.h" #include "boxes/peers/edit_peer_reactions.h" -#include "boxes/peer_list_controllers.h" #include "boxes/stickers_box.h" #include "boxes/username_box.h" -#include "ui/boxes/single_choice_box.h" #include "chat_helpers/emoji_suggestions_widget.h" #include "core/application.h" #include "core/core_settings.h" @@ -42,24 +39,22 @@ For license and copyright information please follow this link: #include "info/profile/info_profile_values.h" #include "lang/lang_keys.h" #include "mtproto/sender.h" -#include "main/main_session.h" #include "main/main_account.h" #include "main/main_app_config.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // IconDescriptor. #include "ui/controls/userpic_button.h" #include "ui/rp_widget.h" +#include "ui/vertical_list.h" #include "ui/toast/toast.h" #include "ui/text/text_utilities.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/buttons.h" #include "ui/widgets/fields/input_field.h" #include "ui/widgets/labels.h" -#include "ui/widgets/box_content_divider.h" #include "ui/wrap/padding_wrap.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" #include "window/window_session_controller.h" -#include "info/profile/info_profile_icon.h" #include "api/api_invite_links.h" #include "styles/style_layers.h" #include "styles/style_menu_icons.h" @@ -87,13 +82,9 @@ void AddSkip( not_null container, int top = st::editPeerTopButtonsLayoutSkip, int bottom = st::editPeerTopButtonsLayoutSkipToBottom) { - container->add(object_ptr( - container, - top)); - container->add(object_ptr(container)); - container->add(object_ptr( - container, - bottom)); + Ui::AddSkip(container, top); + Ui::AddDivider(container); + Ui::AddSkip(container, bottom); } void AddButtonWithCount( @@ -245,10 +236,6 @@ void ShowEditPermissions( navigation->parentController()->show(Box(std::move(createBox))); } -} // namespace - -namespace { - class Controller : public base::has_weak_ptr { public: Controller( @@ -591,7 +578,7 @@ object_ptr Controller::createStickersEdit() { object_ptr(_wrap)); const auto container = result->entity(); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_group_stickers(), { 0, st::settingsSubsectionTitlePadding.top() - bottomSkip, 0, 0 }); @@ -606,13 +593,13 @@ object_ptr Controller::createStickersEdit() { }, { &st::menuIconStickers }); - Settings::AddSkip(container, bottomSkip); + Ui::AddSkip(container, bottomSkip); - Settings::AddDividerText( + Ui::AddDividerText( container, tr::lng_group_stickers_description()); - Settings::AddSkip(container, bottomSkip); + Ui::AddSkip(container, bottomSkip); return result; } @@ -1002,12 +989,12 @@ void Controller::fillManageSection() { if (_isBot) { const auto &container = _controls.buttonsLayout; - AddSkip(container, 0); + ::AddSkip(container, 0); fillBotUsernamesButton(); fillBotEditIntroButton(); fillBotEditCommandsButton(); fillBotEditSettingsButton(); - Settings::AddSkip( + Ui::AddSkip( container, st::editPeerTopButtonsLayoutSkipCustomBottom); container->add(object_ptr( @@ -1070,7 +1057,7 @@ void Controller::fillManageSection() { && (channel->linkedChat() || (channel->isBroadcast() && channel->canEditInformation())); - AddSkip(_controls.buttonsLayout, 0); + ::AddSkip(_controls.buttonsLayout, 0); if (canEditType) { fillPrivacyTypeButton(); @@ -1099,7 +1086,7 @@ void Controller::fillManageSection() { //|| canEditInviteLinks || canViewOrEditLinkedChat || canEditType) { - AddSkip(_controls.buttonsLayout); + ::AddSkip(_controls.buttonsLayout); } if (canEditReactions()) { @@ -1269,7 +1256,7 @@ void Controller::fillManageSection() { } if (canEditStickers || canDeleteChannel) { - AddSkip(_controls.buttonsLayout); + ::AddSkip(_controls.buttonsLayout); } if (canEditStickers) { @@ -1287,7 +1274,7 @@ void Controller::fillManageSection() { } if (canEditStickers || canDeleteChannel) { - AddSkip(_controls.buttonsLayout); + ::AddSkip(_controls.buttonsLayout); } } diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp index 1a32c9978e2f33..660310eda4e8db 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_link.cpp @@ -29,6 +29,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/boxes/edit_invite_link.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "boxes/share_box.h" #include "history/view/history_view_group_call_bar.h" // GenerateUserpics... #include "history/history_item_helpers.h" // GetErrorTextForSending. @@ -434,7 +435,7 @@ void Controller::addHeaderBlock(not_null container) { AddDeleteLinkButton(container, deleteLink); } - AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2); + Ui::AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2); auto grayLabelText = dataValue( ) | rpl::map([=](const LinkData &data) { @@ -472,7 +473,7 @@ void Controller::addHeaderBlock(not_null container) { object_ptr>( container, object_ptr(container))); - AddSkip(container); + Ui::AddSkip(container); dataValue( ) | rpl::start_with_next([=](const LinkData &data) { @@ -509,15 +510,15 @@ not_null*> Controller::addRequestedListBlock( const auto wrap = result->entity(); // Make this container occupy full width. wrap->add(object_ptr(wrap)); - AddDivider(wrap); - AddSkip(wrap); + Ui::AddDivider(wrap); + Ui::AddSkip(wrap); auto requestedCount = dataValue( ) | rpl::filter([](const LinkData &data) { return data.requested > 0; }) | rpl::map([=](const LinkData &data) { return float64(data.requested); }); - AddSubsectionTitle( + Ui::AddSubsectionTitle( wrap, tr::lng_group_invite_requested_full( lt_count_decimal, @@ -588,14 +589,14 @@ void Controller::setupAboveJoinedWidget() { if (revoked || !current.permanent) { addHeaderBlock(container); } - AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_group_invite_created_by()); AddSinglePeerRow( container, current.admin, rpl::single(langDateTime(base::unixtime::parse(current.date)))); - AddSkip(container, st::membersMarginBottom); + Ui::AddSkip(container, st::membersMarginBottom); auto requestedWrap = addRequestedListBlock(container); @@ -609,8 +610,8 @@ void Controller::setupAboveJoinedWidget() { // Make this container occupy full width. listHeader->add(object_ptr(listHeader)); - AddDivider(listHeader); - AddSkip(listHeader); + Ui::AddDivider(listHeader); + Ui::AddSkip(listHeader); auto listHeaderText = dataValue( ) | rpl::map([=](const LinkData &data) { diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp index 7ed35cdf89635f..ba09c54a6fbf0f 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_invite_links.cpp @@ -19,6 +19,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "lang/lang_keys.h" #include "ui/boxes/confirm_box.h" #include "boxes/peer_list_controllers.h" @@ -901,14 +902,14 @@ void ManageInviteLinksBox( std::move(status)); } - AddSubsectionTitle(container, tr::lng_create_permanent_link_title()); + Ui::AddSubsectionTitle(container, tr::lng_create_permanent_link_title()); AddPermanentLinkBlock( show, container, peer, admin, permanentFromList->events()); - AddDivider(container); + Ui::AddDivider(container); auto otherHeader = (Ui::SlideWrap<>*)nullptr; if (admin->isSelf()) { diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_reactions.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_reactions.cpp index 5a09a25d93f995..d85d57497869fb 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_reactions.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_reactions.cpp @@ -20,7 +20,8 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" #include "ui/wrap/slide_wrap.h" -#include "settings/settings_common.h" +#include "ui/vertical_list.h" +#include "settings/settings_common.h" // AddButton. #include "window/window_session_controller.h" #include "styles/style_settings.h" #include "styles/style_info.h" @@ -138,8 +139,8 @@ void EditAllowedReactionsBox( } Unexpected("Option value in EditAllowedReactionsBox."); }; - Settings::AddSkip(container); - Settings::AddDividerText( + Ui::AddSkip(container); + Ui::AddDividerText( container, (isGroup ? (state->option.value() @@ -157,8 +158,8 @@ void EditAllowedReactionsBox( } const auto reactions = wrap ? wrap->entity() : container.get(); - Settings::AddSkip(reactions); - Settings::AddSubsectionTitle( + Ui::AddSkip(reactions); + Ui::AddSubsectionTitle( reactions, (enabled ? tr::lng_manage_peer_reactions_available() diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_type_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_type_box.cpp index bae0be7fe0b55b..2aa4390dd61936 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_type_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_type_box.cpp @@ -29,6 +29,7 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "mtproto/sender.h" #include "ui/rp_widget.h" +#include "ui/vertical_list.h" #include "ui/controls/userpic_button.h" #include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" @@ -218,9 +219,9 @@ void Controller::createContent() { object_ptr(_wrap.get()))); const auto wrap = _controls.whoSendWrap->entity(); - AddSkip(wrap); + Ui::AddSkip(wrap); if (_dataSavedValue->hasLinkedChat) { - AddSubsectionTitle(wrap, tr::lng_manage_peer_send_title()); + Ui::AddSubsectionTitle(wrap, tr::lng_manage_peer_send_title()); _controls.joinToWrite = wrap->add(EditPeerInfoBox::CreateButton( wrap, @@ -264,16 +265,16 @@ void Controller::createContent() { _dataSavedValue->requestToJoin = toggled; }, wrap->lifetime()); - AddSkip(wrap); - AddDividerText( + Ui::AddSkip(wrap); + Ui::AddDividerText( wrap, rpl::conditional( std::move(joinToWrite), tr::lng_manage_peer_send_approve_members_about(), tr::lng_manage_peer_send_only_members_about())); } - AddSkip(_wrap.get()); - AddSubsectionTitle( + Ui::AddSkip(_wrap.get()); + Ui::AddSubsectionTitle( _wrap.get(), tr::lng_manage_peer_no_forwards_title()); _controls.noForwards = _wrap->add(EditPeerInfoBox::CreateButton( @@ -289,8 +290,8 @@ void Controller::createContent() { ) | rpl::start_with_next([=](bool toggled) { _dataSavedValue->noForwards = toggled; }, _wrap->lifetime()); - AddSkip(_wrap.get()); - AddDividerText( + Ui::AddSkip(_wrap.get()); + Ui::AddDividerText( _wrap.get(), (_isGroup ? tr::lng_manage_peer_no_forwards_about @@ -419,7 +420,7 @@ object_ptr Controller::createUsernameEdit() { const auto container = result->entity(); using namespace Settings; - AddSkip(container); + Ui::AddSkip(container); container->add( object_ptr( container, @@ -453,7 +454,7 @@ object_ptr Controller::createUsernameEdit() { AddUsernameCheckLabel(container, _usernameCheckInfo.events()); - AddDividerText( + Ui::AddDividerText( container, tr::lng_create_channel_link_about()); @@ -675,7 +676,7 @@ object_ptr Controller::createInviteLinkBlock() { using namespace Settings; if (_dataSavedValue) { - AddSkip(container); + Ui::AddSkip(container); AddSubsectionTitle(container, tr::lng_create_permanent_link_title()); } @@ -686,9 +687,9 @@ object_ptr Controller::createInviteLinkBlock() { _peer->session().user(), nullptr); - AddSkip(container); + Ui::AddSkip(container); - AddDividerText( + Ui::AddDividerText( container, ((_peer->isMegagroup() || _peer->asChat()) ? tr::lng_group_invite_about_permanent_group() diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp index c5da0871524241..68a8738d4278ca 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_usernames_list.cpp @@ -14,10 +14,10 @@ For license and copyright information please follow this link: #include "data/data_user.h" #include "lang/lang_keys.h" #include "main/main_session.h" -#include "settings/settings_common.h" #include "ui/boxes/confirm_box.h" #include "ui/layers/show.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/text/text_utilities.h" // Ui::Text::RichLangValue. #include "ui/toast/toast.h" #include "ui/widgets/buttons.h" @@ -231,7 +231,7 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) { _container = base::make_unique_q(this); { - Settings::AddSkip(_container); + Ui::AddSkip(_container); _container->add( object_ptr( _container, @@ -364,8 +364,8 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) { }, content->lifetime()); { - Settings::AddSkip(_container); - Settings::AddDividerText( + Ui::AddSkip(_container); + Ui::AddDividerText( _container, _peer->isSelf() ? tr::lng_usernames_description() diff --git a/Telegram/SourceFiles/boxes/premium_limits_box.cpp b/Telegram/SourceFiles/boxes/premium_limits_box.cpp index 9ce74e022b40b4..64452a906e5992 100644 --- a/Telegram/SourceFiles/boxes/premium_limits_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_limits_box.cpp @@ -13,6 +13,7 @@ For license and copyright information please follow this link: #include "ui/widgets/checkbox.h" #include "ui/wrap/padding_wrap.h" #include "ui/text/text_utilities.h" +#include "ui/vertical_list.h" #include "main/main_session.h" #include "main/main_account.h" #include "main/main_domain.h" @@ -27,8 +28,7 @@ For license and copyright information please follow this link: #include "data/data_folder.h" #include "data/data_premium_limits.h" #include "lang/lang_keys.h" -#include "settings/settings_common.h" -#include "settings/settings_premium.h" +#include "settings/settings_premium.h" // ShowPremium. #include "base/unixtime.h" #include "apiwrap.h" #include "styles/style_premium.h" @@ -48,11 +48,11 @@ struct InfographicDescriptor { bool complexRatio = false; }; -void AddSubsectionTitle( +void AddSubtitle( not_null container, rpl::producer text) { const auto &subtitlePadding = st::settingsButton.padding; - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, std::move(text), { 0, subtitlePadding.top(), 0, -subtitlePadding.bottom() }); @@ -395,7 +395,7 @@ void SimpleLimitBox( ? box->setPinnedToTopContent(object_ptr(box)) : box->verticalLayout(); - Settings::AddSkip(top, st::premiumInfographicPadding.top()); + Ui::AddSkip(top, st::premiumInfographicPadding.top()); Ui::Premium::AddBubbleRow( top, st::defaultPremiumBubble, @@ -406,7 +406,7 @@ void SimpleLimitBox( premiumPossible, descriptor.phrase, descriptor.icon); - Settings::AddSkip(top, st::premiumLineTextSkip); + Ui::AddSkip(top, st::premiumLineTextSkip); if (premiumPossible) { Ui::Premium::AddLimitRow( top, @@ -417,7 +417,7 @@ void SimpleLimitBox( (descriptor.complexRatio ? (float64(descriptor.current) / descriptor.premiumLimit) : Ui::Premium::kLimitRowRatio)); - Settings::AddSkip(top, st::premiumInfographicPadding.bottom()); + Ui::AddSkip(top, st::premiumInfographicPadding.bottom()); } box->setTitle(std::move(title)); @@ -446,8 +446,8 @@ void SimpleLimitBox( } if (fixed) { - Settings::AddSkip(top, st::settingsButton.padding.bottom()); - Settings::AddDivider(top); + Ui::AddSkip(top, st::settingsButton.padding.bottom()); + Ui::AddDivider(top); } } @@ -552,7 +552,7 @@ void ChannelsLimitBox( { defaultLimit, current, premiumLimit, &st::premiumIconGroups }, true); - AddSubsectionTitle(box->verticalLayout(), tr::lng_channels_leave_title()); + AddSubtitle(box->verticalLayout(), tr::lng_channels_leave_title()); const auto delegate = box->lifetime().make_state(); const auto controller = box->lifetime().make_state( @@ -642,7 +642,7 @@ void PublicLinksLimitBox( { defaultLimit, current, premiumLimit, &st::premiumIconLinks }, true); - AddSubsectionTitle(box->verticalLayout(), tr::lng_links_revoke_title()); + AddSubtitle(box->verticalLayout(), tr::lng_links_revoke_title()); const auto delegate = box->lifetime().make_state(); const auto controller = box->lifetime().make_state( @@ -1067,7 +1067,7 @@ void AccountsLimitBox( const auto top = box->verticalLayout(); const auto group = std::make_shared(0); - Settings::AddSkip(top, st::premiumInfographicPadding.top()); + Ui::AddSkip(top, st::premiumInfographicPadding.top()); Ui::Premium::AddBubbleRow( top, st::defaultPremiumBubble, @@ -1082,7 +1082,7 @@ void AccountsLimitBox( premiumPossible, std::nullopt, &st::premiumIconAccounts); - Settings::AddSkip(top, st::premiumLineTextSkip); + Ui::AddSkip(top, st::premiumLineTextSkip); if (premiumPossible) { Ui::Premium::AddLimitRow( top, @@ -1090,7 +1090,7 @@ void AccountsLimitBox( (QString::number(std::max(current, defaultLimit) + 1) + ((current + 1 == premiumLimit) ? "" : "+")), QString::number(defaultLimit)); - Settings::AddSkip(top, st::premiumInfographicPadding.bottom()); + Ui::AddSkip(top, st::premiumInfographicPadding.bottom()); } box->setTitle(tr::lng_accounts_limit_title()); diff --git a/Telegram/SourceFiles/boxes/premium_preview_box.cpp b/Telegram/SourceFiles/boxes/premium_preview_box.cpp index 6505e31e60d226..7a49f5cc09c0c6 100644 --- a/Telegram/SourceFiles/boxes/premium_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/premium_preview_box.cpp @@ -32,7 +32,7 @@ For license and copyright information please follow this link: #include "ui/wrap/padding_wrap.h" #include "ui/boxes/confirm_box.h" #include "ui/painter.h" -#include "settings/settings_common.h" +#include "ui/vertical_list.h" #include "settings/settings_premium.h" #include "lottie/lottie_single_player.h" #include "history/view/media/history_view_sticker.h" @@ -1488,7 +1488,7 @@ void UpgradedStoriesPreviewBox( st::defaultPremiumLimits, std::move(entries)); - Settings::AddDividerText( + Ui::AddDividerText( box->verticalLayout(), tr::lng_premium_stories_about_mobile()); } diff --git a/Telegram/SourceFiles/boxes/reactions_settings_box.cpp b/Telegram/SourceFiles/boxes/reactions_settings_box.cpp index 2bbb1b4a75fa67..500d6a3a3e22bd 100644 --- a/Telegram/SourceFiles/boxes/reactions_settings_box.cpp +++ b/Telegram/SourceFiles/boxes/reactions_settings_box.cpp @@ -33,6 +33,7 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/animated_icon.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "window/section_widget.h" #include "window/window_session_controller.h" #include "styles/style_boxes.h" @@ -486,7 +487,7 @@ void ReactionsSettingsBox( auto idValue = state->selectedId.value(); AddMessage(pinnedToTop, controller, std::move(idValue), box->width()); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( pinnedToTop, tr::lng_settings_chat_reactions_subtitle()); diff --git a/Telegram/SourceFiles/boxes/ringtones_box.cpp b/Telegram/SourceFiles/boxes/ringtones_box.cpp index eb06f7066e4b2f..94ed43ac9a304d 100644 --- a/Telegram/SourceFiles/boxes/ringtones_box.cpp +++ b/Telegram/SourceFiles/boxes/ringtones_box.cpp @@ -9,7 +9,6 @@ For license and copyright information please follow this link: #include "api/api_ringtones.h" #include "apiwrap.h" -#include "base/base_file_utilities.h" #include "base/call_delayed.h" #include "base/event_filter.h" #include "base/timer_rpl.h" @@ -30,13 +29,11 @@ For license and copyright information please follow this link: #include "settings/settings_common.h" #include "ui/boxes/confirm_box.h" #include "ui/text/format_values.h" -#include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" -#include "ui/widgets/labels.h" #include "ui/widgets/popup_menu.h" #include "ui/widgets/scroll_area.h" -#include "ui/wrap/padding_wrap.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "styles/style_menu_icons.h" #include "styles/style_boxes.h" #include "styles/style_layers.h" @@ -217,7 +214,7 @@ void RingtonesBox( } }, box->lifetime()); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_ringtones_box_cloud_subtitle()); @@ -323,7 +320,7 @@ void RingtonesBox( }); box->addSkip(st::ringtonesBoxSkip); - Settings::AddDividerText(container, tr::lng_ringtones_box_about()); + Ui::AddDividerText(container, tr::lng_ringtones_box_about()); box->addSkip(st::ringtonesBoxSkip); diff --git a/Telegram/SourceFiles/boxes/sessions_box.cpp b/Telegram/SourceFiles/boxes/sessions_box.cpp index d458111f2c895b..b839a85a7cd050 100644 --- a/Telegram/SourceFiles/boxes/sessions_box.cpp +++ b/Telegram/SourceFiles/boxes/sessions_box.cpp @@ -27,6 +27,7 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "lottie/lottie_icon.h" #include "core/application.h" #include "core/core_settings.h" @@ -462,9 +463,9 @@ void SessionInfoBox( using namespace Settings; const auto container = box->verticalLayout(); - AddDivider(container); - AddSkip(container, st::sessionSubtitleSkip); - AddSubsectionTitle(container, tr::lng_sessions_info()); + Ui::AddDivider(container); + Ui::AddSkip(container, st::sessionSubtitleSkip); + Ui::AddSubsectionTitle(container, tr::lng_sessions_info()); AddSessionInfoRow( container, diff --git a/Telegram/SourceFiles/boxes/translate_box.cpp b/Telegram/SourceFiles/boxes/translate_box.cpp index b21cf229cce1f0..719ca7999cee9f 100644 --- a/Telegram/SourceFiles/boxes/translate_box.cpp +++ b/Telegram/SourceFiles/boxes/translate_box.cpp @@ -18,12 +18,12 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "main/main_session.h" #include "mtproto/sender.h" -#include "settings/settings_common.h" #include "spellcheck/platform/platform_language.h" #include "ui/boxes/choose_language_box.h" #include "ui/effects/loading_element.h" #include "ui/layers/generic_box.h" #include "ui/text/text_utilities.h" +#include "ui/vertical_list.h" #include "ui/painter.h" #include "ui/power_saving.h" #include "ui/widgets/buttons.h" @@ -127,8 +127,8 @@ void TranslateBox( const auto &stLabel = st::aboutLabel; const auto lineHeight = stLabel.style.lineHeight; - Settings::AddSkip(container); - // Settings::AddSubsectionTitle( + Ui::AddSkip(container); + // Ui::AddSubsectionTitle( // container, // tr::lng_translate_box_original()); @@ -181,14 +181,14 @@ void TranslateBox( show->toggleOn(show->entity()->clicks() | rpl::map_to(false)); original->toggleOn(show->entity()->clicks() | rpl::map_to(true)); } - Settings::AddSkip(container); - Settings::AddSkip(container); - Settings::AddDivider(container); - Settings::AddSkip(container); + Ui::AddSkip(container); + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); { const auto padding = st::settingsSubsectionTitlePadding; - const auto subtitle = Settings::AddSubsectionTitle( + const auto subtitle = Ui::AddSubsectionTitle( container, state->to.value() | rpl::map(LanguageName)); diff --git a/Telegram/SourceFiles/boxes/username_box.cpp b/Telegram/SourceFiles/boxes/username_box.cpp index ded98183a7371d..b40f32f634fe90 100644 --- a/Telegram/SourceFiles/boxes/username_box.cpp +++ b/Telegram/SourceFiles/boxes/username_box.cpp @@ -20,6 +20,7 @@ For license and copyright information please follow this link: #include "settings/settings_common.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/text/text_utilities.h" #include "ui/text/text_variant.h" #include "ui/toast/toast.h" @@ -409,11 +410,11 @@ void AddUsernameCheckLabel( const auto skip = (st::usernameSkip - st.style.font->height) / 4; auto wrapped = object_ptr(container); - Settings::AddSkip(wrapped, skip); + Ui::AddSkip(wrapped, skip); const auto label = wrapped->add(object_ptr(wrapped, st)); - Settings::AddSkip(wrapped, skip); + Ui::AddSkip(wrapped, skip); - Settings::AddSkip(container, skip); + Ui::AddSkip(container, skip); container->add( object_ptr>( container, @@ -436,5 +437,5 @@ void AddUsernameCheckLabel( label->setTextColorOverride(color->c); label->resizeToWidth(w - padding.left() - padding.right()); }, label->lifetime()); - Settings::AddSkip(container, skip); + Ui::AddSkip(container, skip); } diff --git a/Telegram/SourceFiles/calls/group/calls_group_rtmp.cpp b/Telegram/SourceFiles/calls/group/calls_group_rtmp.cpp index 69cd78107f9e17..e214eba10366b4 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_rtmp.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_rtmp.cpp @@ -13,7 +13,6 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "main/main_account.h" #include "main/main_session.h" -#include "settings/settings_common.h" // AddDivider. #include "ui/boxes/confirm_box.h" #include "ui/layers/generic_box.h" #include "ui/text/text_utilities.h" @@ -21,6 +20,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "styles/style_boxes.h" #include "styles/style_calls.h" #include "styles/style_info.h" @@ -60,7 +60,7 @@ void StartWithBox( box->setTitle(tr::lng_group_call_rtmp_title()); - Settings::AddDividerText( + Ui::AddDividerText( box->verticalLayout(), tr::lng_group_call_rtmp_info()); @@ -247,9 +247,9 @@ void StartRtmpProcess::FillRtmpRows( QGuiApplication::clipboard()->setText(state->url.current()); showToast(tr::lng_group_call_rtmp_url_copied(tr::now)); })); - Settings::AddSkip(container, st::groupCallRtmpCopyButtonTopSkip); + Ui::AddSkip(container, st::groupCallRtmpCopyButtonTopSkip); const auto weak = container->add(std::move(wrap), rowPadding); - Settings::AddSkip(container, st::groupCallRtmpCopyButtonBottomSkip); + Ui::AddSkip(container, st::groupCallRtmpCopyButtonBottomSkip); button->heightValue( ) | rpl::start_with_next([=](int height) { weak->resize(weak->width(), height); @@ -271,7 +271,7 @@ void StartRtmpProcess::FillRtmpRows( }; // Server URL. - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_group_call_rtmp_url_subtitle(), st::groupCallRtmpSubsectionTitleAddPadding, @@ -279,18 +279,18 @@ void StartRtmpProcess::FillRtmpRows( auto urlLabelContent = state->url.value(); addLabel(std::move(urlLabelContent)); - Settings::AddSkip(container, st::groupCallRtmpUrlSkip); + Ui::AddSkip(container, st::groupCallRtmpUrlSkip); addButton(false, tr::lng_group_call_rtmp_url_copy()); // if (divider) { - Settings::AddDivider(container); + Ui::AddDivider(container); } // Stream Key. - Settings::AddSkip(container, st::groupCallRtmpKeySubsectionTitleSkip); + Ui::AddSkip(container, st::groupCallRtmpKeySubsectionTitleSkip); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, tr::lng_group_call_rtmp_key_subtitle(), st::groupCallRtmpSubsectionTitleAddPadding, diff --git a/Telegram/SourceFiles/calls/group/calls_group_settings.cpp b/Telegram/SourceFiles/calls/group/calls_group_settings.cpp index 121d6d03743381..0e4b7147e847fc 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_settings.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_settings.cpp @@ -14,12 +14,12 @@ For license and copyright information please follow this link: #include "calls/calls_instance.h" #include "ui/widgets/level_meter.h" #include "ui/widgets/continuous_sliders.h" -#include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/fields/input_field.h" #include "ui/widgets/popup_menu.h" #include "ui/wrap/slide_wrap.h" #include "ui/text/text_utilities.h" +#include "ui/vertical_list.h" #include "lang/lang_keys.h" #include "boxes/share_box.h" #include "history/view/history_view_schedule_box.h" @@ -40,7 +40,6 @@ For license and copyright information please follow this link: #include "data/data_changes.h" #include "core/application.h" #include "core/core_settings.h" -#include "ui/boxes/single_choice_box.h" #include "webrtc/webrtc_audio_input_tester.h" #include "webrtc/webrtc_media_devices.h" #include "settings/settings_common.h" @@ -278,7 +277,7 @@ void SettingsBox( }; if (addCheck) { - AddSkip(layout); + Ui::AddSkip(layout); } const auto muteJoined = addCheck ? AddButton( @@ -287,7 +286,7 @@ void SettingsBox( st::groupCallSettingsButton)->toggleOn(rpl::single(joinMuted)) : nullptr; if (addCheck) { - AddSkip(layout); + Ui::AddSkip(layout); } AddButtonWithLabel( @@ -344,9 +343,9 @@ void SettingsBox( }, was, state->micLevel, kMicTestAnimationDuration); }); - AddSkip(layout); - //AddDivider(layout); - //AddSkip(layout); + Ui::AddSkip(layout); + //Ui::AddDivider(layout); + //Ui::AddSkip(layout); AddButton( layout, @@ -577,9 +576,9 @@ void SettingsBox( base::install_event_filter(box, std::move(boxKeyFilter))); } - AddSkip(layout); - //AddDivider(layout); - //AddSkip(layout); + Ui::AddSkip(layout); + //Ui::AddDivider(layout); + //Ui::AddSkip(layout); } auto shareLink = Fn(); if (peer->isChannel() @@ -653,9 +652,9 @@ void SettingsBox( )->addClickHandler(std::move(shareLink)); } if (rtmp && !call->rtmpInfo().url.isEmpty()) { - AddSkip(layout); + Ui::AddSkip(layout); addDivider(); - AddSkip(layout); + Ui::AddSkip(layout); struct State { base::unique_qptr menu; @@ -738,7 +737,7 @@ void SettingsBox( state->data.fire(call->rtmpInfo()); addDivider(); - AddSkip(layout); + Ui::AddSkip(layout); } if (peer->canManageGroupCall()) { diff --git a/Telegram/SourceFiles/history/view/controls/history_view_draft_options.cpp b/Telegram/SourceFiles/history/view/controls/history_view_draft_options.cpp index 6812cb2733f905..de6c0d5c6bf84c 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_draft_options.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_draft_options.cpp @@ -35,6 +35,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/discrete_sliders.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "window/themes/window_theme.h" #include "window/section_widget.h" #include "window/window_session_controller.h" @@ -695,9 +696,7 @@ void DraftOptionsBox( if (!item->originalText().empty()) { AddFilledSkip(bottom); - Settings::AddDividerText( - bottom, - tr::lng_reply_about_quote()); + Ui::AddDividerText(bottom, tr::lng_reply_about_quote()); } }; const auto setupLinkActions = [=] { @@ -755,9 +754,7 @@ void DraftOptionsBox( if (args.links.size() > 1) { AddFilledSkip(bottom); - Settings::AddDividerText( - bottom, - tr::lng_link_about_choose()); + Ui::AddDividerText(bottom, tr::lng_link_about_choose()); } }; diff --git a/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp b/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp index 235e2f1302f2d9..1047ca2c909029 100644 --- a/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp +++ b/Telegram/SourceFiles/info/boosts/create_giveaway_box.cpp @@ -22,7 +22,7 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "payments/payments_checkout_process.h" // Payments::CheckoutProcess #include "payments/payments_form.h" // Payments::InvoicePremiumGiftCode -#include "settings/settings_common.h" +#include "settings/settings_common.h" // AddButton. #include "settings/settings_premium.h" // Settings::ShowPremium #include "ui/boxes/choose_date_time.h" #include "ui/boxes/confirm_box.h" @@ -31,6 +31,7 @@ For license and copyright information please follow this link: #include "ui/layers/generic_box.h" #include "ui/painter.h" #include "ui/rect.h" +#include "ui/vertical_list.h" #include "ui/text/format_values.h" #include "ui/text/text_utilities.h" #include "ui/toast/toast.h" @@ -272,7 +273,7 @@ void CreateGiveawayBox( tr::lng_giveaway_award())); { const auto &padding = st::giveawayGiftCodeCoverDividerPadding; - Settings::AddSkip(box->verticalLayout(), padding.bottom()); + Ui::AddSkip(box->verticalLayout(), padding.bottom()); } const auto loading = box->addRow( @@ -282,8 +283,8 @@ void CreateGiveawayBox( { loading->toggle(true, anim::type::instant); const auto container = loading->entity(); - Settings::AddSkip(container); - Settings::AddSkip(container); + Ui::AddSkip(container); + Ui::AddSkip(container); container->add( object_ptr>( box, @@ -291,8 +292,8 @@ void CreateGiveawayBox( box, tr::lng_contacts_loading(), st::giveawayLoadingLabel))); - Settings::AddSkip(container); - Settings::AddSkip(container); + Ui::AddSkip(container); + Ui::AddSkip(container); } const auto contentWrap = box->verticalLayout()->add( object_ptr>( @@ -384,9 +385,9 @@ void CreateGiveawayBox( { const auto &padding = st::giveawayGiftCodeTypeDividerPadding; - Settings::AddSkip(contentWrap->entity(), padding.top()); - Settings::AddDivider(contentWrap->entity()); - Settings::AddSkip(contentWrap->entity(), padding.bottom()); + Ui::AddSkip(contentWrap->entity(), padding.top()); + Ui::AddDivider(contentWrap->entity()); + Ui::AddSkip(contentWrap->entity(), padding.bottom()); } const auto randomWrap = contentWrap->entity()->add( @@ -415,7 +416,7 @@ void CreateGiveawayBox( return; } state->sliderValue = availablePresets.front(); - const auto title = Settings::AddSubsectionTitle( + const auto title = Ui::AddSubsectionTitle( sliderContainer, tr::lng_giveaway_quantity_title()); const auto rightLabel = Ui::CreateChild( @@ -443,7 +444,7 @@ void CreateGiveawayBox( }, rightLabel->lifetime()); const auto &padding = st::giveawayGiftCodeSliderPadding; - Settings::AddSkip(sliderContainer, padding.top()); + Ui::AddSkip(sliderContainer, padding.top()); class Slider : public Ui::MediaSlider { public: @@ -459,7 +460,7 @@ void CreateGiveawayBox( const auto slider = sliderContainer->add( object_ptr(sliderContainer, st::settingsScale), st::boxRowPadding); - Settings::AddSkip(sliderContainer, padding.bottom()); + Ui::AddSkip(sliderContainer, padding.bottom()); slider->resize(slider->width(), st::settingsScale.seekSize.height()); slider->setPseudoDiscrete( availablePresets.size(), @@ -492,11 +493,11 @@ void CreateGiveawayBox( } }, floatLabel->lifetime()); - Settings::AddSkip(sliderContainer); - Settings::AddDividerText( + Ui::AddSkip(sliderContainer); + Ui::AddDividerText( sliderContainer, tr::lng_giveaway_quantity_about()); - Settings::AddSkip(sliderContainer); + Ui::AddSkip(sliderContainer); sliderContainer->resizeToWidth(box->width()); }; @@ -504,7 +505,7 @@ void CreateGiveawayBox( { const auto channelsContainer = randomWrap->entity()->add( object_ptr(randomWrap)); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( channelsContainer, tr::lng_giveaway_channels_title(), st::giveawayGiftCodeChannelsSubsectionPadding); @@ -568,18 +569,18 @@ void CreateGiveawayBox( }); const auto &padding = st::giveawayGiftCodeChannelsDividerPadding; - Settings::AddSkip(channelsContainer, padding.top()); - Settings::AddDividerText( + Ui::AddSkip(channelsContainer, padding.top()); + Ui::AddDividerText( channelsContainer, tr::lng_giveaway_channels_about()); - Settings::AddSkip(channelsContainer, padding.bottom()); + Ui::AddSkip(channelsContainer, padding.bottom()); } const auto membersGroup = std::make_shared(); { const auto countriesContainer = randomWrap->entity()->add( object_ptr(randomWrap)); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( countriesContainer, tr::lng_giveaway_users_title()); @@ -643,11 +644,11 @@ void CreateGiveawayBox( row->addRadio(membersGroup); row->setClickedCallback(createCallback(GiveawayType::OnlyNewMembers)); - Settings::AddSkip(countriesContainer); - Settings::AddDividerText( + Ui::AddSkip(countriesContainer); + Ui::AddDividerText( countriesContainer, tr::lng_giveaway_users_about()); - Settings::AddSkip(countriesContainer); + Ui::AddSkip(countriesContainer); } const auto addTerms = [=](not_null c) { @@ -671,7 +672,7 @@ void CreateGiveawayBox( { const auto dateContainer = randomWrap->entity()->add( object_ptr(randomWrap)); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( dateContainer, tr::lng_giveaway_date_title(), st::giveawayGiftCodeChannelsSubsectionPadding); @@ -704,7 +705,7 @@ void CreateGiveawayBox( })); }); - Settings::AddSkip(dateContainer); + Ui::AddSkip(dateContainer); if (prepaid) { auto terms = object_ptr(dateContainer); terms->add(object_ptr( @@ -713,20 +714,20 @@ void CreateGiveawayBox( lt_count, state->sliderValue.value() | tr::to_count()), st::boxDividerLabel)); - Settings::AddSkip(terms.data()); - Settings::AddSkip(terms.data()); + Ui::AddSkip(terms.data()); + Ui::AddSkip(terms.data()); addTerms(terms.data()); dateContainer->add(object_ptr( dateContainer, std::move(terms), st::settingsDividerLabelPadding)); } else { - Settings::AddDividerText( + Ui::AddDividerText( dateContainer, tr::lng_giveaway_date_about( lt_count, state->sliderValue.value() | tr::to_count())); - Settings::AddSkip(dateContainer); + Ui::AddSkip(dateContainer); } } @@ -740,7 +741,7 @@ void CreateGiveawayBox( while (listOptions->count()) { delete listOptions->widgetAt(0); } - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( listOptions, tr::lng_giveaway_duration_title( lt_count, @@ -753,7 +754,7 @@ void CreateGiveawayBox( st::giveawayGiftCodeGiftOption, true); - Settings::AddSkip(listOptions); + Ui::AddSkip(listOptions); auto termsContainer = object_ptr(listOptions); addTerms(termsContainer.data()); diff --git a/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp b/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp index 34e0d926fffa71..fac7ff9f2e44dc 100644 --- a/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp +++ b/Telegram/SourceFiles/info/boosts/info_boosts_inner_widget.cpp @@ -23,7 +23,6 @@ For license and copyright information please follow this link: #include "info/statistics/info_statistics_inner_widget.h" // FillLoading. #include "info/statistics/info_statistics_list_controllers.h" #include "lang/lang_keys.h" -#include "settings/settings_common.h" #include "statistics/widgets/chart_header_widget.h" #include "ui/boxes/boost_box.h" #include "ui/controls/invite_link_label.h" @@ -31,6 +30,7 @@ For license and copyright information please follow this link: #include "ui/empty_userpic.h" #include "ui/painter.h" #include "ui/rect.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/widgets/discrete_sliders.h" #include "ui/widgets/labels.h" @@ -60,9 +60,9 @@ void FillOverview( const Data::BoostStatus &status) { const auto &stats = status.overview; - ::Settings::AddSkip(content, st::boostsLayerOverviewMargins.top()); + Ui::AddSkip(content, st::boostsLayerOverviewMargins.top()); AddHeader(content, tr::lng_stats_overview_title); - ::Settings::AddSkip(content); + Ui::AddSkip(content); const auto diffBetweenHeaders = 0 + st::statisticsOverviewValue.style.font->height @@ -157,7 +157,7 @@ void FillOverview( topRightLabel->x(), bottomLeftLabel->y()); }, container->lifetime()); - ::Settings::AddSkip(content, st::boostsLayerOverviewMargins.bottom()); + Ui::AddSkip(content, st::boostsLayerOverviewMargins.bottom()); } void FillShareLink( @@ -213,7 +213,7 @@ void FillShareLink( }, wrap->lifetime()); wrap->showChildren(); } - ::Settings::AddSkip(content, st::boostsLinkFieldPadding.bottom()); + Ui::AddSkip(content, st::boostsLinkFieldPadding.bottom()); } void FillGetBoostsButton( @@ -225,14 +225,13 @@ void FillGetBoostsButton( if (!Api::PremiumGiftCodeOptions(peer).giveawayGiftsPurchaseAvailable()) { return; } - ::Settings::AddSkip(content); + Ui::AddSkip(content); const auto &st = st::getBoostsButton; const auto &icon = st::getBoostsButtonIcon; - const auto button = content->add( - ::Settings::CreateButton( - content.get(), - tr::lng_boosts_get_boosts(), - st)); + const auto button = content->add(object_ptr( + content.get(), + tr::lng_boosts_get_boosts(), + st)); button->setClickedCallback([=] { show->showBox(Box( CreateGiveawayBox, @@ -248,8 +247,8 @@ void FillGetBoostsButton( st::infoSharedMediaButtonIconPosition.x(), (st.height + rect::m::sum::v(st.padding) - icon.height()) / 2, })->show(); - ::Settings::AddSkip(content); - ::Settings::AddDividerText(content, tr::lng_boosts_get_boosts_subtext()); + Ui::AddSkip(content); + Ui::AddDividerText(content, tr::lng_boosts_get_boosts_subtext()); } } // namespace @@ -319,16 +318,16 @@ void InnerWidget::fill() { FillOverview(inner, status); - ::Settings::AddSkip(inner); - ::Settings::AddDivider(inner); - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); + Ui::AddDivider(inner); + Ui::AddSkip(inner); if (!status.prepaidGiveaway.empty()) { const auto multiplier = Api::PremiumGiftCodeOptions(_peer) .giveawayBoostsPerPremium(); - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); AddHeader(inner, tr::lng_boosts_prepaid_giveaway_title); - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); for (const auto &g : status.prepaidGiveaway) { using namespace Giveaway; const auto button = inner->add(object_ptr( @@ -361,9 +360,9 @@ void InnerWidget::fill() { }); } - ::Settings::AddSkip(inner); - ::Settings::AddDivider(inner); - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); + Ui::AddDivider(inner); + Ui::AddSkip(inner); } const auto hasBoosts = (status.firstSliceBoosts.multipliedTotal > 0); @@ -406,7 +405,7 @@ void InnerWidget::fill() { lt_count, status.firstSliceGifts.multipliedTotal); if (hasOneTab) { - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); const auto header = inner->add( object_ptr(inner), st::statisticsLayerMargins @@ -478,18 +477,18 @@ void InnerWidget::fill() { _peer, tr::lng_boosts_title()); - ::Settings::AddSkip(inner); - ::Settings::AddSkip(inner); - ::Settings::AddDividerText(inner, tr::lng_boosts_list_subtext()); + Ui::AddSkip(inner); + Ui::AddSkip(inner); + Ui::AddDividerText(inner, tr::lng_boosts_list_subtext()); } - ::Settings::AddSkip(inner); - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); + Ui::AddSkip(inner); AddHeader(inner, tr::lng_boosts_link_title); - ::Settings::AddSkip(inner, st::boostsLinkSkip); + Ui::AddSkip(inner, st::boostsLinkSkip); FillShareLink(inner, _show, status.link, _peer); - ::Settings::AddSkip(inner); - ::Settings::AddDividerText(inner, tr::lng_boosts_link_subtext()); + Ui::AddSkip(inner); + Ui::AddDividerText(inner, tr::lng_boosts_link_subtext()); FillGetBoostsButton(inner, _controller, _show, _peer, reloadOnDone); diff --git a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp index 4be3f55742a38e..83a7296705ea74 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp @@ -16,26 +16,21 @@ For license and copyright information please follow this link: #include "data/data_changes.h" #include "data/data_user.h" #include "data/notify/data_notify_settings.h" +#include "ui/vertical_list.h" #include "ui/wrap/vertical_layout.h" #include "ui/wrap/padding_wrap.h" #include "ui/wrap/slide_wrap.h" #include "ui/widgets/shadow.h" #include "ui/widgets/labels.h" #include "ui/widgets/buttons.h" -#include "ui/widgets/box_content_divider.h" #include "ui/widgets/popup_menu.h" #include "ui/boxes/report_box.h" -#include "ui/boxes/confirm_box.h" #include "ui/layers/generic_box.h" #include "ui/toast/toast.h" #include "ui/text/text_utilities.h" // Ui::Text::ToUpper #include "ui/text/text_variant.h" #include "history/history_location_manager.h" // LocationClickHandler. #include "history/view/history_view_context_menu.h" // HistoryView::ShowReportPeerBox -#include "boxes/abstract_box.h" -#include "boxes/peer_list_box.h" -#include "boxes/peer_list_controllers.h" -#include "boxes/add_contact_box.h" #include "boxes/peers/add_bot_to_chat_box.h" #include "boxes/peers/edit_contact_box.h" #include "boxes/report_messages_box.h" @@ -58,7 +53,6 @@ For license and copyright information please follow this link: #include "main/main_session.h" #include "core/application.h" #include "core/click_handler_types.h" -#include "settings/settings_common.h" #include "apiwrap.h" #include "api/api_blocked_peers.h" #include "styles/style_info.h" @@ -798,11 +792,11 @@ void ActionsFiller::addInviteToGroupAction( _wrap.data(), object_ptr(_wrap.data()))); about->toggleOn(InviteToChatAbout(user) | rpl::map(notEmpty)); - ::Settings::AddSkip(about->entity()); - ::Settings::AddDividerText( + Ui::AddSkip(about->entity()); + Ui::AddDividerText( about->entity(), InviteToChatAbout(user) | rpl::filter(notEmpty)); - ::Settings::AddSkip(about->entity()); + Ui::AddSkip(about->entity()); about->finishAnimating(); } diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_inner_widget.cpp b/Telegram/SourceFiles/info/statistics/info_statistics_inner_widget.cpp index 694c67fb5f5eb6..a88725f0ef628f 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_inner_widget.cpp +++ b/Telegram/SourceFiles/info/statistics/info_statistics_inner_widget.cpp @@ -22,12 +22,13 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "lottie/lottie_icon.h" #include "main/main_session.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // CreateLottieIcon. #include "statistics/chart_widget.h" #include "statistics/statistics_common.h" #include "statistics/widgets/chart_header_widget.h" #include "ui/layers/generic_box.h" #include "ui/rect.h" +#include "ui/vertical_list.h" #include "ui/toast/toast.h" #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" @@ -114,9 +115,9 @@ void FillStatistic( const auto &padding = st::statisticsChartEntryPadding; const auto &m = st::statisticsLayerMargins; const auto addSkip = [&](not_null c) { - ::Settings::AddSkip(c, padding.bottom()); - ::Settings::AddDivider(c); - ::Settings::AddSkip(c, padding.top()); + Ui::AddSkip(c, padding.bottom()); + Ui::AddDivider(c); + Ui::AddSkip(c, padding.top()); }; const auto addChart = [&]( Data::StatisticalGraph &graphData, @@ -283,9 +284,9 @@ void FillOverview( const auto &channel = stats.channel; const auto &supergroup = stats.supergroup; - ::Settings::AddSkip(content, st::statisticsLayerOverviewMargins.top()); + Ui::AddSkip(content, st::statisticsLayerOverviewMargins.top()); AddHeader(content, tr::lng_stats_overview_title, stats); - ::Settings::AddSkip(content); + Ui::AddSkip(content); struct Second final { QColor color; @@ -457,7 +458,7 @@ void FillOverview( topRightLabel->x(), bottomLeftLabel->y()); }, container->lifetime()); - ::Settings::AddSkip(content, st::statisticsLayerOverviewMargins.bottom()); + Ui::AddSkip(content, st::statisticsLayerOverviewMargins.bottom()); } } // namespace @@ -503,7 +504,7 @@ void FillLoading( st::statisticsLoadingSubtext)), st::changePhoneDescriptionPadding + st::boxRowPadding); - ::Settings::AddSkip(content, st::settingsBlockedListIconPadding.top()); + Ui::AddSkip(content, st::settingsBlockedListIconPadding.top()); } InnerWidget::InnerWidget( @@ -577,12 +578,12 @@ void InnerWidget::fill() { }; if (_state.stats.message) { if (const auto i = _peer->owner().message(_contextId)) { - ::Settings::AddSkip(inner); + Ui::AddSkip(inner); const auto preview = inner->add( object_ptr(this, i, -1, -1, QImage())); AddContextMenu(preview, _controller, i); - ::Settings::AddSkip(inner); - ::Settings::AddDivider(inner); + Ui::AddSkip(inner); + Ui::AddDivider(inner); } } FillOverview(inner, _state.stats); @@ -597,10 +598,10 @@ void InnerWidget::fill() { _showRequests.fire({ .info = peer->id }); }; const auto addSkip = [&](not_null c) { - ::Settings::AddSkip(c); - ::Settings::AddDivider(c); - ::Settings::AddSkip(c); - ::Settings::AddSkip(c); + Ui::AddSkip(c); + Ui::AddDivider(c); + Ui::AddSkip(c); + Ui::AddSkip(c); }; if (!supergroup.topSenders.empty()) { AddMembersList( @@ -653,7 +654,7 @@ void InnerWidget::fillRecentPosts() { object_ptr(container))); const auto content = wrap->entity(); AddHeader(content, tr::lng_stats_recent_messages_title, { stats, {} }); - ::Settings::AddSkip(content); + Ui::AddSkip(content); const auto addMessage = [=]( not_null messageWrap, @@ -689,7 +690,7 @@ void InnerWidget::fillRecentPosts() { button->setClickedCallback([=, fullId = item->fullId()] { _showRequests.fire({ .messageStatistic = fullId }); }); - ::Settings::AddSkip(messageWrap); + Ui::AddSkip(messageWrap); if (!wrap->toggled()) { wrap->toggle(true, anim::type::normal); } diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp index 498acdbd1f2a6b..df4cc466154de7 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp @@ -22,6 +22,7 @@ For license and copyright information please follow this link: #include "ui/empty_userpic.h" #include "ui/painter.h" #include "ui/rect.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" @@ -57,11 +58,11 @@ void AddArrow(not_null parent) { arrow->show(); } -void AddSubsectionTitle( +void AddSubtitle( not_null container, rpl::producer title) { const auto &subtitlePadding = st::settingsButton.padding; - ::Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( container, std::move(title), { 0, -subtitlePadding.top(), 0, -subtitlePadding.bottom() }); @@ -636,7 +637,7 @@ void AddPublicForwards( }); if (const auto total = firstSlice.total; total > 0) { - AddSubsectionTitle( + AddSubtitle( container, tr::lng_stats_overview_message_public_share( lt_count_decimal, @@ -683,7 +684,7 @@ void AddMembersList( }; const auto state = container->lifetime().make_state(std::move(d)); - AddSubsectionTitle(container, std::move(title)); + AddSubtitle(container, std::move(title)); state->delegate.setContent(container->add( object_ptr(container, &state->controller))); diff --git a/Telegram/SourceFiles/info/userpic/info_userpic_colors_editor.cpp b/Telegram/SourceFiles/info/userpic/info_userpic_colors_editor.cpp index 3fc49208793c9a..4e17bef1d9aaae 100644 --- a/Telegram/SourceFiles/info/userpic/info_userpic_colors_editor.cpp +++ b/Telegram/SourceFiles/info/userpic/info_userpic_colors_editor.cpp @@ -15,8 +15,8 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/widgets/color_editor.h" #include "ui/wrap/padding_wrap.h" -#include "settings/settings_common.h" #include "ui/widgets/buttons.h" +#include "ui/vertical_list.h" #include "ui/rect.h" #include "styles/style_info_userpic_builder.h" #include "styles/style_boxes.h" @@ -256,9 +256,9 @@ object_ptr CreateGradientEditor( preview->setDocument(document); } - Settings::AddSkip(container); - Settings::AddDivider(container); - Settings::AddSkip(container); + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); const auto state = container->lifetime().make_state(); state->colors = std::move(startColors); @@ -267,9 +267,9 @@ object_ptr CreateGradientEditor( &state->colors)); buttonsContainer->resize(0, st::userpicBuilderEmojiAccentColorSize); - Settings::AddSkip(container); - Settings::AddDivider(container); - Settings::AddSkip(container); + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); const auto editor = container->add(object_ptr( container, diff --git a/Telegram/SourceFiles/menu/menu_antispam_validator.cpp b/Telegram/SourceFiles/menu/menu_antispam_validator.cpp index 50dfea593bd35e..5baf781db2e8e4 100644 --- a/Telegram/SourceFiles/menu/menu_antispam_validator.cpp +++ b/Telegram/SourceFiles/menu/menu_antispam_validator.cpp @@ -18,9 +18,10 @@ For license and copyright information please follow this link: #include "main/main_account.h" #include "main/main_app_config.h" #include "main/main_session.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // IconDescriptor. #include "ui/text/text_utilities.h" #include "ui/toast/toast.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/widgets/popup_menu.h" #include "ui/wrap/slide_wrap.h" @@ -64,7 +65,7 @@ object_ptr AntiSpamValidator::createButton() const { rpl::variable locked; rpl::event_stream toggled; }; - Settings::AddSkip(container->entity()); + Ui::AddSkip(container->entity()); const auto state = container->lifetime().make_state(); const auto button = container->entity()->add( EditPeerInfoBox::CreateButton( @@ -78,8 +79,8 @@ object_ptr AntiSpamValidator::createButton() const { _channel->antiSpamMode() ) | rpl::then(state->toggled.events())); container->show(anim::type::instant); - Settings::AddSkip(container->entity()); - Settings::AddDividerText( + Ui::AddSkip(container->entity()); + Ui::AddDividerText( container->entity(), tr::lng_manage_peer_antispam_about()); diff --git a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp index 4779e64be0d982..a8f6c3d63971ea 100644 --- a/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp +++ b/Telegram/SourceFiles/payments/ui/payments_form_summary.cpp @@ -8,11 +8,12 @@ For license and copyright information please follow this link: #include "payments/ui/payments_form_summary.h" #include "payments/ui/payments_panel_delegate.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // AddButtonWithLabel. #include "ui/widgets/scroll_area.h" #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "ui/wrap/fade_wrap.h" #include "ui/text/format_values.h" #include "ui/text/text_utilities.h" @@ -117,7 +118,7 @@ bool FormSummary::showCriticalError(const TextWithEntities &text) { < st::paymentsPanelSize.height() / 2)) { return false; } - Settings::AddSkip(_layout.get(), st::paymentsPricesTopSkip); + Ui::AddSkip(_layout.get(), st::paymentsPricesTopSkip); _layout->add(object_ptr( _layout.get(), rpl::single(text), @@ -317,15 +318,15 @@ void FormSummary::setupPrices(not_null layout) { return right; }; - Settings::AddSkip(layout, st::paymentsPricesTopSkip); + Ui::AddSkip(layout, st::paymentsPricesTopSkip); if (_invoice.receipt) { addRow( tr::lng_payments_date_label(tr::now), { langDateTime(base::unixtime::parse(_invoice.receipt.date)) }, true); - Settings::AddSkip(layout, st::paymentsPricesBottomSkip); - Settings::AddDivider(layout); - Settings::AddSkip(layout, st::paymentsPricesBottomSkip); + Ui::AddSkip(layout, st::paymentsPricesBottomSkip); + Ui::AddDivider(layout); + Ui::AddSkip(layout, st::paymentsPricesBottomSkip); } const auto add = [&]( @@ -367,7 +368,7 @@ void FormSummary::setupPrices(not_null layout) { } add(tr::lng_payments_total_label(tr::now), total, true); - Settings::AddSkip(layout, st::paymentsPricesBottomSkip); + Ui::AddSkip(layout, st::paymentsPricesBottomSkip); } void FormSummary::setupSuggestedTips(not_null layout) { @@ -479,7 +480,7 @@ void FormSummary::setupSuggestedTips(not_null layout) { } void FormSummary::setupSections(not_null layout) { - Settings::AddSkip(layout, st::paymentsSectionsTopSkip); + Ui::AddSkip(layout, st::paymentsSectionsTopSkip); const auto add = [&]( rpl::producer title, @@ -558,7 +559,7 @@ void FormSummary::setupSections(not_null layout) { &st::paymentsIconPhone, [=] { _delegate->panelEditPhone(); }); } - Settings::AddSkip(layout, st::paymentsSectionsTopSkip); + Ui::AddSkip(layout, st::paymentsSectionsTopSkip); } void FormSummary::setupContent(not_null layout) { @@ -569,9 +570,9 @@ void FormSummary::setupContent(not_null layout) { setupCover(layout); if (_invoice) { - Settings::AddDivider(layout); + Ui::AddDivider(layout); setupPrices(layout); - Settings::AddDivider(layout); + Ui::AddDivider(layout); setupSections(layout); } } diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp index 4a0ba8d682937c..28ba086a341673 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_common.cpp @@ -26,6 +26,7 @@ For license and copyright information please follow this link: #include "ui/widgets/fields/password_input.h" #include "ui/widgets/labels.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_boxes.h" #include "styles/style_layers.h" @@ -63,7 +64,7 @@ BottomButton CreateBottomDisableButton( Fn &&callback) { const auto content = Ui::CreateChild(parent.get()); - AddSkip(content); + Ui::AddSkip(content); AddButton( content, @@ -132,7 +133,7 @@ void SetupHeader( animate(anim::repeat::once); }, content->lifetime()); } - AddSkip(content); + Ui::AddSkip(content); content->add( object_ptr>( @@ -248,7 +249,7 @@ not_null AddDoneButton( } void AddSkipInsteadOfField(not_null content) { - AddSkip(content, st::settingLocalPasscodeInputField.heightMin); + Ui::AddSkip(content, st::settingLocalPasscodeInputField.heightMin); } void AddSkipInsteadOfError(not_null content) { @@ -257,7 +258,7 @@ void AddSkipInsteadOfError(not_null content) { tr::lng_language_name(tr::now), st::settingLocalPasscodeError); const auto &padding = st::changePhoneDescriptionPadding; - AddSkip(content, dummy->height() + padding.top() + padding.bottom()); + Ui::AddSkip(content, dummy->height() + padding.top() + padding.bottom()); dummy = nullptr; } diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email.cpp index 0fedabd9371b78..aead318d0a296e 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email.cpp @@ -13,13 +13,12 @@ For license and copyright information please follow this link: #include "settings/cloud_password/settings_cloud_password_common.h" #include "settings/cloud_password/settings_cloud_password_email_confirm.h" #include "settings/cloud_password/settings_cloud_password_manage.h" +#include "ui/vertical_list.h" #include "ui/boxes/confirm_box.h" #include "ui/widgets/buttons.h" #include "ui/widgets/fields/input_field.h" -#include "ui/wrap/padding_wrap.h" #include "ui/wrap/vertical_layout.h" #include "window/window_session_controller.h" -#include "styles/style_boxes.h" #include "styles/style_layers.h" #include "styles/style_settings.h" @@ -82,7 +81,7 @@ void Email::setupContent() { : tr::lng_settings_cloud_password_email_subtitle(), tr::lng_settings_cloud_password_email_about()); - AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); + Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); const auto wrap = AddWrappedField( content, diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp index 24d7fb2ace2697..60596c5bfb6c9e 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_email_confirm.cpp @@ -17,6 +17,7 @@ For license and copyright information please follow this link: #include "settings/cloud_password/settings_cloud_password_input.h" #include "settings/cloud_password/settings_cloud_password_manage.h" #include "settings/cloud_password/settings_cloud_password_start.h" +#include "ui/vertical_list.h" #include "ui/boxes/confirm_box.h" #include "ui/text/format_values.h" #include "ui/widgets/buttons.h" @@ -123,7 +124,7 @@ void EmailConfirm::setupContent() { ? recoverEmailPattern : state->unconfirmedPattern))); - AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); + Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); auto objectInput = object_ptr( content, diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_hint.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_hint.cpp index f2a89376e8ca27..e690b99051ce9d 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_hint.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_hint.cpp @@ -12,6 +12,7 @@ For license and copyright information please follow this link: #include "settings/cloud_password/settings_cloud_password_common.h" #include "settings/cloud_password/settings_cloud_password_email.h" #include "settings/cloud_password/settings_cloud_password_manage.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/widgets/fields/input_field.h" #include "ui/widgets/labels.h" @@ -71,7 +72,7 @@ void Hint::setupContent() { tr::lng_settings_cloud_password_hint_subtitle(), tr::lng_settings_cloud_password_hint_about()); - AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); + Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); const auto wrap = AddWrappedField( content, diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp index e532117b76a32f..2321287d7b5287 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp @@ -24,6 +24,7 @@ For license and copyright information please follow this link: #include "ui/widgets/fields/password_input.h" #include "ui/widgets/labels.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_boxes.h" #include "styles/style_layers.h" @@ -184,7 +185,7 @@ void Input::setupContent() { : tr::lng_settings_cloud_password_password_subtitle(), tr::lng_cloud_password_about()); - AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); + Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); const auto newInput = AddPasswordField( content, @@ -322,7 +323,7 @@ void Input::setupContent() { showBack(); }); }); - AddSkip(content); + Ui::AddSkip(content); } if (!newInput->text().isEmpty()) { diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_manage.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_manage.cpp index 2bc8e396422b36..45ef630664d1ab 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_manage.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_manage.cpp @@ -10,19 +10,18 @@ For license and copyright information please follow this link: #include "api/api_cloud_password.h" #include "core/core_cloud_password.h" #include "lang/lang_keys.h" -#include "lottie/lottie_icon.h" #include "settings/cloud_password/settings_cloud_password_common.h" #include "settings/cloud_password/settings_cloud_password_email_confirm.h" #include "settings/cloud_password/settings_cloud_password_email.h" #include "settings/cloud_password/settings_cloud_password_hint.h" #include "settings/cloud_password/settings_cloud_password_input.h" #include "settings/cloud_password/settings_cloud_password_start.h" +#include "ui/vertical_list.h" #include "ui/boxes/confirm_box.h" #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/wrap/vertical_layout.h" #include "window/window_session_controller.h" -#include "styles/style_boxes.h" #include "styles/style_layers.h" #include "styles/style_menu_icons.h" #include "styles/style_settings.h" @@ -129,7 +128,7 @@ void Manage::setupContent() { TextWithEntities::Simple), u"cloud_password/intro"_q); - AddSkip(content); + Ui::AddSkip(content); AddButton( content, tr::lng_settings_cloud_password_manage_password_change(), @@ -152,7 +151,7 @@ void Manage::setupContent() { showOtherAndRememberPassword(CloudPasswordEmailId()); }); - AddSkip(content); + Ui::AddSkip(content); using Divider = CloudPassword::OneEdgeBoxContentDivider; const auto divider = Ui::CreateChild(this); diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_start.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_start.cpp index 0bb13778d0cef7..00fd0f240ce615 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_start.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_start.cpp @@ -10,6 +10,7 @@ For license and copyright information please follow this link: #include "lang/lang_keys.h" #include "settings/cloud_password/settings_cloud_password_common.h" #include "settings/cloud_password/settings_cloud_password_input.h" +#include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/wrap/vertical_layout.h" #include "styles/style_settings.h" diff --git a/Telegram/SourceFiles/settings/settings_advanced.cpp b/Telegram/SourceFiles/settings/settings_advanced.cpp index 3d92fb32357171..de7df4634f7086 100644 --- a/Telegram/SourceFiles/settings/settings_advanced.cpp +++ b/Telegram/SourceFiles/settings/settings_advanced.cpp @@ -23,6 +23,7 @@ For license and copyright information please follow this link: #include "ui/text/format_values.h" #include "ui/boxes/single_choice_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "boxes/connection_box.h" #include "boxes/about_box.h" #include "ui/boxes/confirm_box.h" @@ -683,7 +684,7 @@ void CheckNonEmptyOptions( container->add(object_ptr( container, std::move(wrap))); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } } diff --git a/Telegram/SourceFiles/settings/settings_blocked_peers.cpp b/Telegram/SourceFiles/settings/settings_blocked_peers.cpp index e21666d8106ec0..496d7d2c5f7664 100644 --- a/Telegram/SourceFiles/settings/settings_blocked_peers.cpp +++ b/Telegram/SourceFiles/settings/settings_blocked_peers.cpp @@ -19,6 +19,7 @@ For license and copyright information please follow this link: #include "ui/wrap/padding_wrap.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_settings.h" #include "styles/style_boxes.h" @@ -74,7 +75,7 @@ rpl::producer Blocked::title() { QPointer Blocked::createPinnedToTop(not_null parent) { const auto content = Ui::CreateChild(parent.get()); - AddSkip(content); + Ui::AddSkip(content); AddButton( content, @@ -85,20 +86,20 @@ QPointer Blocked::createPinnedToTop(not_null parent) { BlockedBoxController::BlockNewPeer(_controller); }); - AddSkip(content); - AddDividerText(content, tr::lng_blocked_list_about()); + Ui::AddSkip(content); + Ui::AddDividerText(content, tr::lng_blocked_list_about()); { const auto subtitle = content->add( object_ptr>( content, object_ptr(content)))->setDuration(0); - AddSkip(subtitle->entity()); + Ui::AddSkip(subtitle->entity()); auto subtitleText = _countBlocked.value( ) | rpl::map([=](int count) { return tr::lng_blocked_list_subtitle(tr::now, lt_count, count); }); - AddSubsectionTitle( + Ui::AddSubsectionTitle( subtitle->entity(), rpl::duplicate(subtitleText), st::settingsBlockedListSubtitleAddPadding); @@ -201,7 +202,7 @@ void Blocked::setupContent() { st::changePhoneDescription)), st::changePhoneDescriptionPadding); - AddSkip(content, st::settingsBlockedListIconPadding.top()); + Ui::AddSkip(content, st::settingsBlockedListIconPadding.top()); } // We want minimal height to be the same no matter if subtitle diff --git a/Telegram/SourceFiles/settings/settings_calls.cpp b/Telegram/SourceFiles/settings/settings_calls.cpp index 55916a97bb0406..62ae7bc12150d4 100644 --- a/Telegram/SourceFiles/settings/settings_calls.cpp +++ b/Telegram/SourceFiles/settings/settings_calls.cpp @@ -16,6 +16,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/boxes/single_choice_box.h" #include "ui/boxes/confirm_box.h" +#include "ui/vertical_list.h" #include "platform/platform_specific.h" #include "main/main_session.h" #include "lang/lang_keys.h" @@ -221,14 +222,14 @@ void Calls::setupContent() { const auto content = Ui::CreateChild(this); if (!GetVideoInputList().empty()) { - AddSkip(content); - AddSubsectionTitle(content, tr::lng_settings_call_camera()); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_settings_call_camera()); AddCameraSubsection(_controller->uiShow(), content, true); - AddSkip(content); - AddDivider(content); + Ui::AddSkip(content); + Ui::AddDivider(content); } - AddSkip(content); - AddSubsectionTitle(content, tr::lng_settings_call_section_output()); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_output()); AddButtonWithLabel( content, tr::lng_settings_call_output_device(), @@ -246,10 +247,10 @@ void Calls::setupContent() { }))); }); - AddSkip(content); - AddDivider(content); - AddSkip(content); - AddSubsectionTitle(content, tr::lng_settings_call_section_input()); + Ui::AddSkip(content); + Ui::AddDivider(content); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_input()); AddButtonWithLabel( content, tr::lng_settings_call_input_device(), @@ -285,10 +286,10 @@ void Calls::setupContent() { }, was, _micLevel, kMicTestAnimationDuration); }); - AddSkip(content); - AddDivider(content); - AddSkip(content); - AddSubsectionTitle(content, tr::lng_settings_call_section_other()); + Ui::AddSkip(content); + Ui::AddDivider(content); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_other()); const auto api = &_controller->session().api(); AddButton( @@ -318,7 +319,7 @@ void Calls::setupContent() { } }); - AddSkip(content); + Ui::AddSkip(content); Ui::ResizeFitChild(this, content); } diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index 508627901a1793..17628b110335a2 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -26,7 +26,6 @@ For license and copyright information please follow this link: #include "ui/widgets/checkbox.h" #include "ui/widgets/color_editor.h" #include "ui/widgets/buttons.h" -#include "ui/widgets/labels.h" #include "ui/chat/attach/attach_extensions.h" #include "ui/chat/chat_style.h" #include "ui/chat/chat_theme.h" @@ -36,6 +35,7 @@ For license and copyright information please follow this link: #include "ui/toast/toast.h" #include "ui/image/image.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/ui_utility.h" #include "history/view/history_view_quick_action.h" #include "lang/lang_keys.h" @@ -60,14 +60,12 @@ For license and copyright information please follow this link: #include "data/data_user.h" #include "chat_helpers/emoji_sets_manager.h" #include "base/platform/base_platform_info.h" -#include "platform/platform_specific.h" #include "base/call_delayed.h" #include "support/support_common.h" #include "support/support_templates.h" #include "main/main_session.h" #include "main/main_session_settings.h" #include "mainwidget.h" -#include "mainwindow.h" #include "styles/style_chat_helpers.h" // stickersRemove #include "styles/style_settings.h" #include "styles/style_layers.h" @@ -703,10 +701,10 @@ void ChooseFromFile( void SetupStickersEmoji( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_stickers_emoji()); + Ui::AddSubsectionTitle(container, tr::lng_settings_stickers_emoji()); const auto session = &controller->session(); @@ -826,18 +824,18 @@ void SetupStickersEmoji( controller->show(Box(session)); }); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } void SetupMessages( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_messages()); + Ui::AddSubsectionTitle(container, tr::lng_settings_messages()); - AddSkip(container, st::settingsSendTypeSkip); + Ui::AddSkip(container, st::settingsSendTypeSkip); using SendByType = Ui::InputSubmitSettings; using Quick = HistoryView::DoubleClickQuickAction; @@ -876,7 +874,7 @@ void SetupMessages( controller->content()->ctrlEnterSubmitUpdated(); }); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); const auto groupQuick = std::make_shared>( Core::App().settings().chatQuickAction()); @@ -1001,7 +999,7 @@ void SetupMessages( show->showBox(Box(ReactionsSettingsBox, controller)); }); - AddSkip(inner, st::settingsSendTypeSkip); + Ui::AddSkip(inner, st::settingsSendTypeSkip); inner->add( object_ptr( @@ -1016,14 +1014,14 @@ void SetupMessages( Core::App().saveSettingsDelayed(); }, inner->lifetime()); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); } void SetupArchive( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); PreloadArchiveSettings(&controller->session()); AddButton( @@ -1082,9 +1080,9 @@ void SetupDataStorage( not_null container) { using namespace rpl::mappers; - AddSkip(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_data_storage()); + Ui::AddSubsectionTitle(container, tr::lng_settings_data_storage()); SetupConnectionType( &controller->window(), @@ -1159,16 +1157,16 @@ void SetupDataStorage( path->toggleOn(ask->toggledValue() | rpl::map(!_1)); #endif // OS_WIN_STORE - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } void SetupAutoDownload( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, tr::lng_media_auto_settings()); + Ui::AddSubsectionTitle(container, tr::lng_media_auto_settings()); using Source = Data::AutoDownload::Source; const auto add = [&]( @@ -1198,16 +1196,16 @@ void SetupAutoDownload( Source::Channel, { &st::menuIconChannel }); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } void SetupChatBackground( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_section_background()); + Ui::AddSubsectionTitle(container, tr::lng_settings_section_background()); container->add( object_ptr(container, controller), @@ -1223,7 +1221,7 @@ void SetupChatBackground( std::move(wrap), QMargins(0, skipTop, 0, skipBottom))); - AddSkip(container, st::settingsTileSkip); + Ui::AddSkip(container, st::settingsTileSkip); const auto background = Window::Theme::Background(); const auto tile = inner->add( @@ -1455,7 +1453,7 @@ void SetupDefaultThemes( apply(*scheme); }, container->lifetime()); - AddSkip(container); + Ui::AddSkip(container); } void SetupThemeOptions( @@ -1463,13 +1461,13 @@ void SetupThemeOptions( not_null container) { using namespace Window::Theme; - AddSkip(container, st::settingsPrivacySkip); + Ui::AddSkip(container, st::settingsPrivacySkip); - AddSubsectionTitle(container, tr::lng_settings_themes()); + Ui::AddSubsectionTitle(container, tr::lng_settings_themes()); - AddSkip(container, st::settingsThemesTopSkip); + Ui::AddSkip(container, st::settingsThemesTopSkip); SetupDefaultThemes(&controller->window(), container); - AddSkip(container); + Ui::AddSkip(container); } void SetupCloudThemes( @@ -1485,8 +1483,8 @@ void SetupCloudThemes( )->setDuration(0); const auto inner = wrap->entity(); - AddDivider(inner); - AddSkip(inner, st::settingsPrivacySkip); + Ui::AddDivider(inner); + Ui::AddSkip(inner, st::settingsPrivacySkip); const auto title = AddSubsectionTitle( inner, @@ -1506,7 +1504,7 @@ void SetupCloudThemes( outerWidth); }, showAll->lifetime()); - AddSkip(inner, st::settingsThemesTopSkip); + Ui::AddSkip(inner, st::settingsThemesTopSkip); const auto list = inner->lifetime().make_state( inner, @@ -1535,7 +1533,7 @@ void SetupCloudThemes( )->setDuration(0); const auto edit = editWrap->entity(); - AddSkip(edit, st::settingsThemesBottomSkip); + Ui::AddSkip(edit, st::settingsThemesBottomSkip); AddButton( edit, tr::lng_settings_bg_theme_edit(), @@ -1559,7 +1557,7 @@ void SetupCloudThemes( return (Background()->themeObject().cloud.createdBy == userId); })); - AddSkip(inner, 2 * st::settingsSectionSkip); + Ui::AddSkip(inner, 2 * st::settingsSectionSkip); wrap->setDuration(0)->toggleOn(list->empty() | rpl::map(!_1)); } @@ -1567,10 +1565,10 @@ void SetupCloudThemes( void SetupThemeSettings( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container, st::settingsPrivacySkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsPrivacySkip); - AddSubsectionTitle(container, tr::lng_settings_theme_settings()); + Ui::AddSubsectionTitle(container, tr::lng_settings_theme_settings()); AddPeerColorButton( container, @@ -1603,7 +1601,7 @@ void SetupThemeSettings( }); } - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } void SetupSupportSwitchSettings( @@ -1674,11 +1672,11 @@ void SetupSupportChatsLimitSlice( void SetupSupport( not_null controller, not_null container) { - AddSkip(container); + Ui::AddSkip(container); - AddSubsectionTitle(container, rpl::single(u"Support settings"_q)); + Ui::AddSubsectionTitle(container, rpl::single(u"Support settings"_q)); - AddSkip(container, st::settingsSendTypeSkip); + Ui::AddSkip(container, st::settingsSendTypeSkip); const auto skip = st::settingsSendTypeSkip; auto wrap = object_ptr(container); @@ -1691,7 +1689,7 @@ void SetupSupport( SetupSupportSwitchSettings(controller, inner); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); inner->add( object_ptr( @@ -1721,15 +1719,15 @@ void SetupSupport( controller->session().saveSettingsDelayed(); }, inner->lifetime()); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); - AddSubsectionTitle(inner, rpl::single(u"Load chats for a period"_q)); + Ui::AddSubsectionTitle(inner, rpl::single(u"Load chats for a period"_q)); SetupSupportChatsLimitSlice(controller, inner); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); - AddSkip(inner); + Ui::AddSkip(inner); } Chat::Chat(QWidget *parent, not_null controller) diff --git a/Telegram/SourceFiles/settings/settings_common.cpp b/Telegram/SourceFiles/settings/settings_common.cpp index 27f125a09478a5..62a24b868c90c3 100644 --- a/Telegram/SourceFiles/settings/settings_common.cpp +++ b/Telegram/SourceFiles/settings/settings_common.cpp @@ -99,32 +99,6 @@ QSize Icon::size() const { return _icon->size(); } -void AddSkip(not_null container) { - AddSkip(container, st::settingsSectionSkip); -} - -void AddSkip(not_null container, int skip) { - container->add(object_ptr( - container, - skip)); -} - -void AddDivider(not_null container) { - container->add(object_ptr(container)); -} - -void AddDividerText( - not_null container, - rpl::producer text) { - container->add(object_ptr( - container, - object_ptr( - container, - std::move(text), - st::boxDividerLabel), - st::settingsDividerLabelPadding)); -} - void AddButtonIcon( not_null button, const style::SettingsButton &st, @@ -224,19 +198,6 @@ not_null AddButtonWithLabel( return button; } -not_null AddSubsectionTitle( - not_null container, - rpl::producer text, - style::margins addPadding, - const style::FlatLabel *st) { - return container->add( - object_ptr( - container, - std::move(text), - st ? *st : st::settingsSubsectionTitle), - st::settingsSubsectionTitlePadding + addPadding); -} - void AddDividerTextWithLottie( not_null parent, rpl::producer<> showFinished, diff --git a/Telegram/SourceFiles/settings/settings_common.h b/Telegram/SourceFiles/settings/settings_common.h index c0973b3d63e018..ede5892a884407 100644 --- a/Telegram/SourceFiles/settings/settings_common.h +++ b/Telegram/SourceFiles/settings/settings_common.h @@ -167,12 +167,6 @@ class Icon final { }; -void AddSkip(not_null container); -void AddSkip(not_null container, int skip); -void AddDivider(not_null container); -void AddDividerText( - not_null container, - rpl::producer text); void AddButtonIcon( not_null button, const style::SettingsButton &st, @@ -198,11 +192,6 @@ void CreateRightLabel( rpl::producer label, const style::SettingsButton &st, rpl::producer buttonText); -not_null AddSubsectionTitle( - not_null container, - rpl::producer text, - style::margins addPadding = {}, - const style::FlatLabel *st = nullptr); void AddDividerTextWithLottie( not_null parent, rpl::producer<> showFinished, diff --git a/Telegram/SourceFiles/settings/settings_experimental.cpp b/Telegram/SourceFiles/settings/settings_experimental.cpp index c6a9b5cdedadbd..3b54f7b403f534 100644 --- a/Telegram/SourceFiles/settings/settings_experimental.cpp +++ b/Telegram/SourceFiles/settings/settings_experimental.cpp @@ -12,6 +12,7 @@ For license and copyright information please follow this link: #include "ui/wrap/slide_wrap.h" #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" +#include "ui/vertical_list.h" #include "ui/gl/gl_detection.h" #include "ui/chat/chat_style_radius.h" #include "base/options.h" @@ -87,16 +88,16 @@ void AddOption( const auto &description = option.description(); if (!description.isEmpty()) { - AddSkip(container, st::settingsCheckboxesSkip); - AddDividerText(container, rpl::single(description)); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDividerText(container, rpl::single(description)); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } } void SetupExperimental( not_null window, not_null container) { - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); container->add( object_ptr( @@ -112,8 +113,8 @@ void SetupExperimental( container, object_ptr(container))); const auto inner = wrap->entity(); - AddDivider(inner); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddDivider(inner); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); reset = AddButton( inner, tr::lng_settings_experimental_restore(), @@ -122,11 +123,11 @@ void SetupExperimental( base::options::reset(); wrap->hide(anim::type::normal); }); - AddSkip(inner, st::settingsCheckboxesSkip); + Ui::AddSkip(inner, st::settingsCheckboxesSkip); } - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); const auto addToggle = [&](const char name[]) { AddOption( diff --git a/Telegram/SourceFiles/settings/settings_folders.cpp b/Telegram/SourceFiles/settings/settings_folders.cpp index c3ef96f0399cd2..ff0734e1e3d0c8 100644 --- a/Telegram/SourceFiles/settings/settings_folders.cpp +++ b/Telegram/SourceFiles/settings/settings_folders.cpp @@ -27,6 +27,7 @@ For license and copyright information please follow this link: #include "ui/filter_icons.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/text/text_utilities.h" #include "ui/widgets/box_content_divider.h" #include "ui/widgets/buttons.h" @@ -39,7 +40,6 @@ For license and copyright information please follow this link: #include "styles/style_layers.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" -#include "styles/style_window.h" namespace Settings { namespace { @@ -342,8 +342,8 @@ void FilterRowButton::paintEvent(QPaintEvent *e) { const auto limit = [=] { return Data::PremiumLimits(session).dialogFiltersCurrent(); }; - AddSkip(container, st::settingsSectionSkip); - AddSubsectionTitle(container, tr::lng_filters_subtitle()); + Ui::AddSkip(container, st::settingsSectionSkip); + Ui::AddSubsectionTitle(container, tr::lng_filters_subtitle()); struct State { std::vector rows; @@ -571,16 +571,16 @@ void FilterRowButton::paintEvent(QPaintEvent *e) { crl::guard(container, doneCallback), crl::guard(container, saveAnd))); }); - AddSkip(container); + Ui::AddSkip(container); const auto nonEmptyAbout = container->add( object_ptr>( container, object_ptr(container)) )->setDuration(0); const auto aboutRows = nonEmptyAbout->entity(); - AddDivider(aboutRows); - AddSkip(aboutRows); - AddSubsectionTitle(aboutRows, tr::lng_filters_recommended()); + Ui::AddDivider(aboutRows); + Ui::AddSkip(aboutRows); + Ui::AddSubsectionTitle(aboutRows, tr::lng_filters_recommended()); rpl::single(rpl::empty) | rpl::then( session->data().chatsFilters().suggestedUpdated() @@ -613,7 +613,7 @@ void FilterRowButton::paintEvent(QPaintEvent *e) { }, button->lifetime()); } aboutRows->resizeToWidth(container->width()); - AddSkip(aboutRows, st::settingsSectionSkip); + Ui::AddSkip(aboutRows, st::settingsSectionSkip); }, aboutRows->lifetime()); auto showSuggestions = rpl::combine( diff --git a/Telegram/SourceFiles/settings/settings_global_ttl.cpp b/Telegram/SourceFiles/settings/settings_global_ttl.cpp index 4c991fb2224296..1fc1d38e350fe8 100644 --- a/Telegram/SourceFiles/settings/settings_global_ttl.cpp +++ b/Telegram/SourceFiles/settings/settings_global_ttl.cpp @@ -22,6 +22,7 @@ For license and copyright information please follow this link: #include "settings/settings_common.h" #include "ui/boxes/confirm_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/text/format_values.h" #include "ui/text/text_utilities.h" #include "ui/widgets/buttons.h" @@ -326,8 +327,8 @@ void GlobalTTL::setupContent() { SetupTopContent(content, _showFinished.events()); - AddSkip(content); - AddSubsectionTitle(content, tr::lng_settings_ttl_after_subtitle()); + Ui::AddSkip(content); + Ui::AddSubsectionTitle(content, tr::lng_settings_ttl_after_subtitle()); content->add(object_ptr::fromRaw(_buttons)); @@ -362,7 +363,7 @@ void GlobalTTL::setupContent() { })); }); - AddSkip(content); + Ui::AddSkip(content); auto footer = object_ptr( content, diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index 9e9fedbb103d0f..46cf9e34808f0c 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -7,7 +7,6 @@ For license and copyright information please follow this link: */ #include "settings/settings_information.h" -#include "editor/photo_editor_layer_widget.h" #include "settings/settings_common.h" #include "ui/wrap/vertical_layout.h" #include "ui/wrap/vertical_layout_reorder.h" @@ -24,6 +23,7 @@ For license and copyright information please follow this link: #include "ui/text/text_utilities.h" #include "ui/delayed_activation.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/unread_badge_paint.h" #include "core/application.h" #include "core/core_settings.h" @@ -49,7 +49,6 @@ For license and copyright information please follow this link: #include "apiwrap.h" #include "api/api_peer_photo.h" #include "api/api_user_names.h" -#include "core/file_utilities.h" #include "base/call_delayed.h" #include "base/options.h" #include "base/unixtime.h" @@ -62,7 +61,6 @@ For license and copyright information please follow this link: #include "styles/style_window.h" #include -#include #include namespace Settings { @@ -362,7 +360,7 @@ void SetupRows( not_null self) { const auto session = &self->session(); - AddSkip(container); + Ui::AddSkip(container); AddRow( container, @@ -428,8 +426,8 @@ void SetupRows( }, { &st::menuIconUsername }); - AddSkip(container); - AddDividerText(container, tr::lng_settings_username_about()); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_settings_username_about()); } void SetupBio( @@ -549,13 +547,13 @@ void SetupBio( &self->session()); updated(); - AddDividerText(container, tr::lng_settings_about_bio()); + Ui::AddDividerText(container, tr::lng_settings_about_bio()); } void SetupAccountsWrap( not_null container, not_null controller) { - AddSkip(container); + Ui::AddSkip(container); SetupAccounts(container, controller); } diff --git a/Telegram/SourceFiles/settings/settings_intro.cpp b/Telegram/SourceFiles/settings/settings_intro.cpp index 6aecfc0b96d207..365c31a222f7e1 100644 --- a/Telegram/SourceFiles/settings/settings_intro.cpp +++ b/Telegram/SourceFiles/settings/settings_intro.cpp @@ -19,6 +19,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/scroll_area.h" #include "ui/cached_round_corners.h" +#include "ui/vertical_list.h" #include "lang/lang_keys.h" #include "boxes/abstract_box.h" #include "window/window_controller.h" @@ -61,16 +62,16 @@ object_ptr CreateIntroSettings( not_null window) { auto result = object_ptr(parent); - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); SetupLanguageButton(window, result); SetupConnectionType(window, &window->account(), result); - AddSkip(result); + Ui::AddSkip(result); if (HasUpdate()) { - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); SetupUpdate(result); - AddSkip(result); + Ui::AddSkip(result); } { auto wrap = object_ptr(result); @@ -81,29 +82,29 @@ object_ptr CreateIntroSettings( window->sessionController(), wrap.data()); if (wrap->count() > 0) { - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); result->add(object_ptr( result, std::move(wrap))); - AddSkip(result); + Ui::AddSkip(result); } } - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); SetupInterfaceScale(window, result, false); SetupDefaultThemes(window, result); - AddSkip(result); + Ui::AddSkip(result); if (anim::Disabled()) { - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); SetupAnimations(window, result); - AddSkip(result); + Ui::AddSkip(result); } - AddDivider(result); - AddSkip(result); + Ui::AddDivider(result); + Ui::AddSkip(result); SetupFaq(result, false); return result; diff --git a/Telegram/SourceFiles/settings/settings_local_passcode.cpp b/Telegram/SourceFiles/settings/settings_local_passcode.cpp index 77dad4027e0c80..6eec051719782f 100644 --- a/Telegram/SourceFiles/settings/settings_local_passcode.cpp +++ b/Telegram/SourceFiles/settings/settings_local_passcode.cpp @@ -18,6 +18,7 @@ For license and copyright information please follow this link: #include "settings/cloud_password/settings_cloud_password_common.h" #include "settings/settings_common.h" #include "storage/storage_domain.h" +#include "ui/vertical_list.h" #include "ui/boxes/confirm_box.h" #include "ui/widgets/buttons.h" #include "ui/widgets/fields/password_input.h" @@ -120,7 +121,7 @@ void LocalPasscodeEnter::setupContent() { [=] { _showBack.fire({}); }); } - AddSkip(content); + Ui::AddSkip(content); content->add( object_ptr>( @@ -145,10 +146,10 @@ void LocalPasscodeEnter::setupContent() { }; addDescription(tr::lng_passcode_about1()); - AddSkip(content); + Ui::AddSkip(content); addDescription(tr::lng_passcode_about2()); - AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); + Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip); const auto addField = [&](rpl::producer &&text) { const auto &st = st::settingLocalPasscodeInputField; @@ -437,7 +438,7 @@ void LocalPasscodeManage::setupContent() { content->lifetime(), [=] { _showBack.fire({}); }); - AddSkip(content); + Ui::AddSkip(content); AddButton( content, @@ -481,7 +482,7 @@ void LocalPasscodeManage::setupContent() { ) | rpl::start_to_stream(state->autoLockBoxClosing, box->lifetime()); }); - AddSkip(content); + Ui::AddSkip(content); using Divider = CloudPassword::OneEdgeBoxContentDivider; const auto divider = Ui::CreateChild(this); diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index 43194a4bd7e6ea..bae863c8fecd10 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -33,6 +33,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/text/text_utilities.h" #include "ui/toast/toast.h" +#include "ui/vertical_list.h" #include "info/profile/info_profile_badge.h" #include "info/profile/info_profile_emoji_status_panel.h" #include "data/data_user.h" @@ -298,8 +299,8 @@ void SetupSections( not_null controller, not_null container, Fn showOther) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); const auto addSection = [&]( rpl::producer label, @@ -317,8 +318,8 @@ void SetupSections( if (controller->session().supportMode()) { SetupSupport(controller, container); - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); } else { addSection( tr::lng_settings_my_account(), @@ -394,7 +395,7 @@ void SetupSections( SetupPowerSavingButton(&controller->window(), container); SetupLanguageButton(&controller->window(), container); - AddSkip(container); + Ui::AddSkip(container); } void SetupPremium( @@ -404,8 +405,8 @@ void SetupPremium( if (!controller->session().premiumPossible()) { return; } - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); AddButton( container, @@ -416,7 +417,7 @@ void SetupPremium( controller->setPremiumRef("settings"); showOther(PremiumId()); }); - AddSkip(container); + Ui::AddSkip(container); } bool HasInterfaceScale() { @@ -570,7 +571,7 @@ void SetupInterfaceScale( }, button->lifetime()); if (!icon) { - AddSkip(container, st::settingsThumbSkip); + Ui::AddSkip(container, st::settingsThumbSkip); } } @@ -590,8 +591,8 @@ void SetupFaq(not_null container, bool icon) { void SetupHelp( not_null controller, not_null container) { - AddDivider(container); - AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); SetupFaq(container); @@ -678,10 +679,10 @@ void Main::setupContent(not_null controller) { _showOther.fire_copy(type); }); if (HasInterfaceScale()) { - AddDivider(content); - AddSkip(content); + Ui::AddDivider(content); + Ui::AddSkip(content); SetupInterfaceScale(&controller->window(), content); - AddSkip(content); + Ui::AddSkip(content); } SetupPremium(controller, content, [=](Type type) { _showOther.fire_copy(type); diff --git a/Telegram/SourceFiles/settings/settings_notifications.cpp b/Telegram/SourceFiles/settings/settings_notifications.cpp index 63d7c0160d79bd..abd0c8a00298dc 100644 --- a/Telegram/SourceFiles/settings/settings_notifications.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications.cpp @@ -20,6 +20,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/discrete_sliders.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/ui_utility.h" #include "lang/lang_keys.h" #include "window/notifications_manager.h" @@ -880,17 +881,19 @@ NotifyViewCheckboxes SetupNotifyViewOptions( void SetupAdvancedNotifications( not_null controller, not_null container) { - AddSkip(container, st::settingsCheckboxesSkip); - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle(container, tr::lng_settings_notifications_position()); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle( + container, + tr::lng_settings_notifications_position()); + Ui::AddSkip(container, st::settingsCheckboxesSkip); const auto position = container->add( object_ptr(container, controller)); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle(container, tr::lng_settings_notifications_count()); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_notifications_count()); const auto count = container->add( object_ptr(container, st::settingsSlider), @@ -903,7 +906,7 @@ void SetupAdvancedNotifications( ) | rpl::start_with_next([=](int section) { position->setCount(section + 1); }, count->lifetime()); - AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSkip(container, st::settingsCheckboxesSkip); } void SetupMultiAccountNotifications( @@ -912,7 +915,7 @@ void SetupMultiAccountNotifications( if (Core::App().domain().accounts().size() < 2) { return; } - AddSubsectionTitle(container, tr::lng_settings_show_from()); + Ui::AddSubsectionTitle(container, tr::lng_settings_show_from()); const auto fromAll = AddButton( container, @@ -938,9 +941,9 @@ void SetupMultiAccountNotifications( } }, fromAll->lifetime()); - AddSkip(container); - AddDividerText(container, tr::lng_settings_notify_all_about()); - AddSkip(container); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_settings_notify_all_about()); + Ui::AddSkip(container); } void SetupNotificationsContent( @@ -949,7 +952,7 @@ void SetupNotificationsContent( Fn showOther) { using namespace rpl::mappers; - AddSkip(container, st::settingsPrivacySkip); + Ui::AddSkip(container, st::settingsPrivacySkip); using NotifyView = Core::Settings::NotifyView; SetupMultiAccountNotifications(controller, container); @@ -1010,7 +1013,7 @@ void SetupNotificationsContent( { &st::menuIconUnmute }, soundAllowed->events_starting_with(allowed())); - AddSkip(container); + Ui::AddSkip(container); const auto checkboxes = SetupNotifyViewOptions( controller, @@ -1029,8 +1032,8 @@ void SetupNotificationsContent( controller->session().data().notifySettings().loadExceptions(); - AddSkip(container, st::notifyPreviewBottomSkip); - AddSubsectionTitle(container, tr::lng_settings_notify_title()); + Ui::AddSkip(container, st::notifyPreviewBottomSkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_notify_title()); const auto addType = [&](Data::DefaultNotify type) { AddTypeButton(container, controller, type, showOther); }; @@ -1038,10 +1041,10 @@ void SetupNotificationsContent( addType(Data::DefaultNotify::Group); addType(Data::DefaultNotify::Broadcast); - AddSkip(container, st::settingsCheckboxesSkip); - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle(container, tr::lng_settings_events_title()); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_events_title()); auto joinSilent = rpl::single( session->api().contactSignupSilentCurrent().value_or(false) @@ -1072,10 +1075,10 @@ void SetupNotificationsContent( Core::App().saveSettingsDelayed(); }, joined->lifetime()); - AddSkip(container, st::settingsCheckboxesSkip); - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle( + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle( container, tr::lng_settings_notifications_calls_title()); const auto authorizations = &session->api().authorizations(); @@ -1090,10 +1093,10 @@ void SetupNotificationsContent( authorizations->toggleCallsDisabledHere(!toggled); }, container->lifetime()); - AddSkip(container, st::settingsCheckboxesSkip); - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle(container, tr::lng_settings_badge_title()); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_badge_title()); const auto muted = AddButton( container, @@ -1120,10 +1123,10 @@ void SetupNotificationsContent( return nullptr; } - AddSkip(container, st::settingsCheckboxesSkip); - AddDivider(container); - AddSkip(container, st::settingsCheckboxesSkip); - AddSubsectionTitle(container, tr::lng_settings_native_title()); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddDivider(container); + Ui::AddSkip(container, st::settingsCheckboxesSkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_native_title()); return AddButton( container, std::move(nativeText), diff --git a/Telegram/SourceFiles/settings/settings_notifications_type.cpp b/Telegram/SourceFiles/settings/settings_notifications_type.cpp index f1240938fd838a..c88a5592ac0fc6 100644 --- a/Telegram/SourceFiles/settings/settings_notifications_type.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications_type.cpp @@ -26,6 +26,7 @@ For license and copyright information please follow this link: #include "ui/widgets/popup_menu.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_layers.h" #include "styles/style_menu_icons.h" @@ -378,7 +379,7 @@ void SetupChecks( not_null container, not_null controller, Notify type) { - AddSubsectionTitle(container, Title(type)); + Ui::AddSubsectionTitle(container, Title(type)); const auto session = &controller->session(); const auto settings = &session->data().notifySettings(); @@ -597,12 +598,12 @@ void NotificationsType::setupContent( not_null controller) { const auto container = Ui::CreateChild(this); - AddSkip(container, st::settingsPrivacySkip); + Ui::AddSkip(container, st::settingsPrivacySkip); SetupChecks(container, controller, _type); - AddSkip(container); - AddDivider(container); - AddSkip(container); + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); SetupExceptions(container, controller, _type); diff --git a/Telegram/SourceFiles/settings/settings_power_saving.cpp b/Telegram/SourceFiles/settings/settings_power_saving.cpp index 15b83b18da095f..37af31fc4ed68e 100644 --- a/Telegram/SourceFiles/settings/settings_power_saving.cpp +++ b/Telegram/SourceFiles/settings/settings_power_saving.cpp @@ -12,10 +12,11 @@ For license and copyright information please follow this link: #include "core/application.h" #include "core/core_settings.h" #include "lang/lang_keys.h" -#include "settings/settings_common.h" +#include "settings/settings_common.h" // AddButton. #include "ui/layers/generic_box.h" #include "ui/widgets/buttons.h" #include "ui/power_saving.h" +#include "ui/vertical_list.h" #include "styles/style_menu_icons.h" #include "styles/style_layers.h" #include "styles/style_settings.h" @@ -40,7 +41,7 @@ void PowerSavingBox(not_null box) { box->setPinnedToTopContent( object_ptr(box, st::lineWidth)); - const auto subtitle = AddSubsectionTitle( + const auto subtitle = Ui::AddSubsectionTitle( container, tr::lng_settings_power_subtitle(), st::powerSavingSubtitlePadding); @@ -63,16 +64,16 @@ void PowerSavingBox(not_null box) { auto automatic = (Ui::SettingsButton*)nullptr; if (batterySaving.has_value()) { - AddSkip(container); - AddDivider(container); - AddSkip(container); + Ui::AddSkip(container); + Ui::AddDivider(container); + Ui::AddSkip(container); automatic = AddButton( container, tr::lng_settings_power_auto(), st::powerSavingButtonNoIcon )->toggleOn(rpl::single(!ignore)); - AddSkip(container); - AddDividerText(container, tr::lng_settings_power_auto_about()); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_settings_power_auto_about()); state->forceDisabledMessage = rpl::combine( automatic->toggledValue(), diff --git a/Telegram/SourceFiles/settings/settings_premium.cpp b/Telegram/SourceFiles/settings/settings_premium.cpp index b18e735f7bdc3f..ad19fe72420d81 100644 --- a/Telegram/SourceFiles/settings/settings_premium.cpp +++ b/Telegram/SourceFiles/settings/settings_premium.cpp @@ -30,7 +30,6 @@ For license and copyright information please follow this link: #include "main/main_app_config.h" #include "main/main_session.h" #include "settings/settings_common.h" -#include "settings/settings_premium.h" #include "ui/abstract_button.h" #include "ui/basic_click_handlers.h" #include "ui/effects/gradient.h" @@ -40,7 +39,6 @@ For license and copyright information please follow this link: #include "ui/layers/generic_box.h" #include "ui/text/format_values.h" #include "ui/text/text_utilities.h" -#include "ui/text/text_utilities.h" #include "ui/toast/toast.h" #include "ui/widgets/checkbox.h" // Ui::RadiobuttonGroup. #include "ui/widgets/gradient_round_button.h" @@ -51,6 +49,7 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/painter.h" #include "ui/power_saving.h" +#include "ui/vertical_list.h" #include "window/window_controller.h" #include "window/window_session_controller.h" #include "base/unixtime.h" @@ -872,7 +871,7 @@ void Premium::setupSubscriptionOptions( object_ptr(container))); const auto content = options->entity(); - AddSkip(content, st::settingsPremiumOptionsPadding.top()); + Ui::AddSkip(content, st::settingsPremiumOptionsPadding.top()); const auto apiPremium = &_controller->session().api().premium(); Ui::Premium::AddGiftOptions( @@ -882,13 +881,13 @@ void Premium::setupSubscriptionOptions( st::premiumSubscriptionOption, true); - AddSkip(content, st::settingsPremiumOptionsPadding.bottom()); - AddDivider(content); + Ui::AddSkip(content, st::settingsPremiumOptionsPadding.bottom()); + Ui::AddDivider(content); const auto lastSkip = TopTransitionSkip() * (isEmojiStatus ? 1 : 2); - AddSkip(content, lastSkip - st::settingsSectionSkip); - AddSkip(skip->entity(), lastSkip); + Ui::AddSkip(content, lastSkip - st::settingsSectionSkip); + Ui::AddSkip(skip->entity(), lastSkip); auto toggleOn = rpl::combine( Data::AmPremiumValue(&_controller->session()), @@ -1089,11 +1088,11 @@ void Premium::setupContent() { { .icon = icons[i], .backgroundBrush = brush }); } - AddSkip(content, descriptionPadding.bottom()); + Ui::AddSkip(content, descriptionPadding.bottom()); #if 0 - AddSkip(content); - AddDivider(content); - AddSkip(content); + Ui::AddSkip(content); + Ui::AddDivider(content); + Ui::AddSkip(content); content->add( object_ptr( @@ -1108,7 +1107,9 @@ void Premium::setupContent() { tr::lng_premium_summary_bottom_about(Ui::Text::RichLangValue), st::aboutLabel), st::boxRowPadding); - AddSkip(content, stDefault.padding.top() + stDefault.padding.bottom()); + Ui::AddSkip( + content, + stDefault.padding.top() + stDefault.padding.bottom()); #endif Ui::ResizeFitChild(this, content); diff --git a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp index aa1e37d09daede..c4e58a04108cfa 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp @@ -44,6 +44,7 @@ For license and copyright information please follow this link: #include "ui/image/image_prepare.h" #include "ui/image/image_prepare.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/text/format_values.h" // Ui::FormatPhone #include "ui/text/text_utilities.h" #include "ui/widgets/checkbox.h" @@ -562,8 +563,10 @@ object_ptr PhoneNumberPrivacyController::setupMiddleWidget( object_ptr(parent)); const auto container = widget->entity(); - AddSkip(container); - AddSubsectionTitle(container, tr::lng_edit_privacy_phone_number_find()); + Ui::AddSkip(container); + Ui::AddSubsectionTitle( + container, + tr::lng_edit_privacy_phone_number_find()); const auto group = std::make_shared>(); group->setChangedCallback([=](Option value) { _addedByPhone = value; @@ -581,8 +584,10 @@ object_ptr PhoneNumberPrivacyController::setupMiddleWidget( }; addOption(Option::Everyone); addOption(Option::Contacts); - AddSkip(container, st::settingsSectionSkip + st::settingsPrivacySkipTop); - AddDivider(container); + Ui::AddSkip( + container, + st::settingsSectionSkip + st::settingsPrivacySkipTop); + Ui::AddDivider(container); using namespace rpl::mappers; widget->toggleOn(_phoneNumberOption.value( @@ -757,8 +762,10 @@ object_ptr CallsPrivacyController::setupBelowWidget( auto result = object_ptr(parent); const auto content = result.data(); - AddSkip(content, st::settingsPeerToPeerSkip); - AddSubsectionTitle(content, tr::lng_settings_calls_peer_to_peer_title()); + Ui::AddSkip(content, st::settingsPeerToPeerSkip); + Ui::AddSubsectionTitle( + content, + tr::lng_settings_calls_peer_to_peer_title()); Settings::AddPrivacyButton( controller, content, @@ -767,7 +774,7 @@ object_ptr CallsPrivacyController::setupBelowWidget( UserPrivacy::Key::CallsPeer2Peer, [] { return std::make_unique(); }, &st::settingsButton); - AddSkip(content); + Ui::AddSkip(content); return result; } @@ -1081,7 +1088,7 @@ object_ptr ProfilePhotoPrivacyController::setupMiddleWidget( st::inviteLinkUserpics.size, st::inviteLinkUserpics.size); - AddSkip(container); + Ui::AddSkip(container); const auto setUserpicButton = AddButton( container, state->setUserpicButtonText.value(), @@ -1095,8 +1102,8 @@ object_ptr ProfilePhotoPrivacyController::setupMiddleWidget( parent, tr::lng_edit_privacy_profile_photo_public_remove(), stRemoveButton))); - AddSkip(container); - AddDividerText( + Ui::AddSkip(container); + Ui::AddDividerText( container, tr::lng_edit_privacy_profile_photo_public_about()); diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index 25a17d3f906569..3f1aae1c432350 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -45,6 +45,7 @@ For license and copyright information please follow this link: #include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" #include "ui/layers/generic_box.h" +#include "ui/vertical_list.h" #include "calls/calls_instance.h" #include "core/core_cloud_password.h" #include "core/update_checker.h" @@ -253,8 +254,8 @@ void SetupPrivacy( not_null controller, not_null container, rpl::producer<> updateTrigger) { - AddSkip(container, st::settingsPrivacySkip); - AddSubsectionTitle(container, tr::lng_settings_privacy_title()); + Ui::AddSkip(container, st::settingsPrivacySkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_privacy_title()); const auto session = &controller->session(); @@ -310,8 +311,8 @@ void SetupPrivacy( session->api().userPrivacy().reload(Api::UserPrivacy::Key::AddedByPhone); - AddSkip(container, st::settingsPrivacySecurityPadding); - AddDivider(container); + Ui::AddSkip(container, st::settingsPrivacySecurityPadding); + Ui::AddDivider(container); } void SetupLocalPasscode( @@ -426,8 +427,8 @@ void SetupSensitiveContent( object_ptr(container))); const auto inner = wrap->entity(); - AddSkip(inner); - AddSubsectionTitle(inner, tr::lng_settings_sensitive_title()); + Ui::AddSkip(inner); + Ui::AddSubsectionTitle(inner, tr::lng_settings_sensitive_title()); const auto session = &controller->session(); @@ -449,8 +450,8 @@ void SetupSensitiveContent( session->api().sensitiveContent().update(toggled); }, container->lifetime()); - AddSkip(inner); - AddDividerText(inner, tr::lng_settings_sensitive_about()); + Ui::AddSkip(inner); + Ui::AddDividerText(inner, tr::lng_settings_sensitive_about()); wrap->toggleOn(session->api().sensitiveContent().canChange()); } @@ -459,8 +460,8 @@ void SetupSelfDestruction( not_null controller, not_null container, rpl::producer<> updateTrigger) { - AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_destroy_title()); + Ui::AddSkip(container); + Ui::AddSubsectionTitle(container, tr::lng_settings_destroy_title()); const auto session = &controller->session(); @@ -486,7 +487,7 @@ void SetupSelfDestruction( session->api().selfDestruct().daysAccountTTL())); }); - AddSkip(container); + Ui::AddSkip(container); } void ClearPaymentInfoBoxBuilder( @@ -551,8 +552,8 @@ auto ClearPaymentInfoBox(not_null session) { void SetupBotsAndWebsites( not_null controller, not_null container) { - AddSkip(container); - AddSubsectionTitle(container, tr::lng_settings_security_bots()); + Ui::AddSkip(container); + Ui::AddSubsectionTitle(container, tr::lng_settings_security_bots()); const auto session = &controller->session(); AddButton( @@ -563,7 +564,7 @@ void SetupBotsAndWebsites( controller->show(ClearPaymentInfoBox(session)); }); - AddSkip(container); + Ui::AddSkip(container); } void SetupBlockedList( @@ -658,8 +659,8 @@ void SetupSessionsList( showOther(Sessions::Id()); }); - AddSkip(container); - AddDividerText(container, tr::lng_settings_sessions_about()); + Ui::AddSkip(container); + Ui::AddDividerText(container, tr::lng_settings_sessions_about()); } void SetupGlobalTTLList( @@ -695,8 +696,8 @@ void SetupSecurity( not_null container, rpl::producer<> updateTrigger, Fn showOther) { - AddSkip(container, st::settingsPrivacySkip); - AddSubsectionTitle(container, tr::lng_settings_security()); + Ui::AddSkip(container, st::settingsPrivacySkip); + Ui::AddSubsectionTitle(container, tr::lng_settings_security()); SetupCloudPassword(controller, container, showOther); SetupGlobalTTLList( @@ -848,8 +849,8 @@ void SetupArchiveAndMute( object_ptr(container))); const auto inner = wrap->entity(); - AddSkip(inner); - AddSubsectionTitle(inner, tr::lng_settings_new_unknown()); + Ui::AddSkip(inner); + Ui::AddSubsectionTitle(inner, tr::lng_settings_new_unknown()); const auto session = &controller->session(); @@ -868,8 +869,8 @@ void SetupArchiveAndMute( privacy->updateArchiveAndMute(toggled); }, container->lifetime()); - AddSkip(inner); - AddDividerText(inner, tr::lng_settings_auto_archive_about()); + Ui::AddSkip(inner); + Ui::AddDividerText(inner, tr::lng_settings_auto_archive_about()); auto shown = rpl::single( false diff --git a/Telegram/SourceFiles/settings/settings_websites.cpp b/Telegram/SourceFiles/settings/settings_websites.cpp index 495ffd6ff78918..37ad414fdd8c98 100644 --- a/Telegram/SourceFiles/settings/settings_websites.cpp +++ b/Telegram/SourceFiles/settings/settings_websites.cpp @@ -22,6 +22,7 @@ For license and copyright information please follow this link: #include "ui/wrap/vertical_layout.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "window/window_session_controller.h" #include "styles/style_info.h" #include "styles/style_layers.h" @@ -154,9 +155,9 @@ void InfoBox( using namespace Settings; const auto container = box->verticalLayout(); - AddDivider(container); - AddSkip(container, st::sessionSubtitleSkip); - AddSubsectionTitle(container, tr::lng_sessions_info()); + Ui::AddDivider(container); + Ui::AddSkip(container, st::sessionSubtitleSkip); + Ui::AddSubsectionTitle(container, tr::lng_sessions_info()); AddSessionInfoRow( container, @@ -174,9 +175,9 @@ void InfoBox( data.location, st::menuIconAddress); - AddSkip(container, st::sessionValueSkip); + Ui::AddSkip(container, st::sessionValueSkip); if (!data.location.isEmpty()) { - AddDividerText(container, tr::lng_sessions_location_about()); + Ui::AddDividerText(container, tr::lng_sessions_location_about()); } box->addButton(tr::lng_about_done(), [=] { box->closeBox(); }); @@ -609,8 +610,8 @@ void Content::Inner::setupContent() { tr::lng_settings_disconnect_all(), st::infoBlockButton, { .icon = &st::infoIconBlock })); - AddSkip(terminateInner); - AddDividerText( + Ui::AddSkip(terminateInner); + Ui::AddDividerText( terminateInner, tr::lng_settings_logged_in_description()); @@ -619,10 +620,10 @@ void Content::Inner::setupContent() { content, object_ptr(content)))->setDuration(0); const auto listInner = listWrap->entity(); - AddSkip(listInner, st::sessionSubtitleSkip); - AddSubsectionTitle(listInner, tr::lng_settings_logged_in_title()); + Ui::AddSkip(listInner, st::sessionSubtitleSkip); + Ui::AddSubsectionTitle(listInner, tr::lng_settings_logged_in_title()); _list = ListController::Add(listInner, session); - AddSkip(listInner); + Ui::AddSkip(listInner); const auto skip = st::noContactsHeight / 2; const auto placeholder = content->add( @@ -772,7 +773,7 @@ rpl::producer Websites::title() { void Websites::setupContent(not_null controller) { const auto container = Ui::CreateChild(this); - AddSkip(container); + Ui::AddSkip(container); const auto content = container->add( object_ptr(container, controller)); content->setupContent(); diff --git a/Telegram/SourceFiles/ui/vertical_list.cpp b/Telegram/SourceFiles/ui/vertical_list.cpp new file mode 100644 index 00000000000000..1e8951616f029c --- /dev/null +++ b/Telegram/SourceFiles/ui/vertical_list.cpp @@ -0,0 +1,58 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#include "ui/vertical_list.h" + +#include "ui/widgets/box_content_divider.h" +#include "ui/widgets/labels.h" +#include "ui/wrap/padding_wrap.h" +#include "ui/wrap/vertical_layout.h" +#include "styles/style_layers.h" +#include "styles/style_settings.h" + +namespace Ui { + +void AddSkip(not_null container) { + AddSkip(container, st::settingsSectionSkip); +} + +void AddSkip(not_null container, int skip) { + container->add(object_ptr( + container, + skip)); +} + +void AddDivider(not_null container) { + container->add(object_ptr(container)); +} + +void AddDividerText( + not_null container, + rpl::producer text) { + container->add(object_ptr( + container, + object_ptr( + container, + std::move(text), + st::boxDividerLabel), + st::settingsDividerLabelPadding)); +} + +not_null AddSubsectionTitle( + not_null container, + rpl::producer text, + style::margins addPadding, + const style::FlatLabel *st) { + return container->add( + object_ptr( + container, + std::move(text), + st ? *st : st::settingsSubsectionTitle), + st::settingsSubsectionTitlePadding + addPadding); +} + +} // namespace Ui diff --git a/Telegram/SourceFiles/ui/vertical_list.h b/Telegram/SourceFiles/ui/vertical_list.h new file mode 100644 index 00000000000000..66fc03bffabb25 --- /dev/null +++ b/Telegram/SourceFiles/ui/vertical_list.h @@ -0,0 +1,31 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +namespace style { +struct FlatLabel; +} // namespace style + +namespace Ui { + +class FlatLabel; +class VerticalLayout; + +void AddSkip(not_null container); +void AddSkip(not_null container, int skip); +void AddDivider(not_null container); +void AddDividerText( + not_null container, + rpl::producer text); +not_null AddSubsectionTitle( + not_null container, + rpl::producer text, + style::margins addPadding = {}, + const style::FlatLabel *st = nullptr); + +} // namespace Ui diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index 3dde58473d1bb7..476086a19f5b6e 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -22,21 +22,18 @@ For license and copyright information please follow this link: #include "ui/widgets/shadow.h" #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" -#include "ui/wrap/vertical_layout_reorder.h" -#include "ui/text/format_values.h" // Ui::FormatPhone #include "ui/text/text_utilities.h" #include "ui/text/text_options.h" #include "ui/painter.h" #include "ui/empty_userpic.h" +#include "ui/vertical_list.h" #include "ui/unread_badge_paint.h" -#include "base/call_delayed.h" #include "inline_bots/bot_attach_web_view.h" #include "mainwindow.h" #include "storage/localstorage.h" #include "storage/storage_account.h" #include "support/support_templates.h" #include "settings/settings_advanced.h" -#include "settings/settings_common.h" #include "settings/settings_calls.h" #include "settings/settings_information.h" #include "info/profile/info_profile_badge.h" @@ -57,7 +54,6 @@ For license and copyright information please follow this link: #include "main/main_session_settings.h" #include "main/main_account.h" #include "main/main_domain.h" -#include "mtproto/mtp_instance.h" #include "mtproto/mtproto_config.h" #include "data/data_document_media.h" #include "data/data_folder.h" @@ -69,9 +65,7 @@ For license and copyright information please follow this link: #include "styles/style_chat.h" // popupMenuExpandedSeparator #include "styles/style_window.h" #include "styles/style_widgets.h" -#include "styles/style_dialogs.h" #include "styles/style_settings.h" -#include "styles/style_boxes.h" #include "styles/style_info.h" // infoTopBarMenu #include "styles/style_layers.h" #include "styles/style_menu_icons.h" @@ -127,16 +121,16 @@ void ShowCallsBox(not_null window) { groupCalls->hide(anim::type::instant); groupCalls->toggleOn(state->groupCallsController.shownValue()); - Settings::AddSubsectionTitle( + Ui::AddSubsectionTitle( groupCalls->entity(), tr::lng_call_box_groupcalls_subtitle()); state->groupCallsDelegate.setContent(groupCalls->entity()->add( object_ptr(box, &state->groupCallsController), {})); state->groupCallsController.setDelegate(&state->groupCallsDelegate); - Settings::AddSkip(groupCalls->entity()); - Settings::AddDivider(groupCalls->entity()); - Settings::AddSkip(groupCalls->entity()); + Ui::AddSkip(groupCalls->entity()); + Ui::AddDivider(groupCalls->entity()); + Ui::AddSkip(groupCalls->entity()); const auto content = box->addRow( object_ptr(box, &state->callsController), @@ -234,15 +228,15 @@ void SetupMenuBots( } continue; } - const auto button = Settings::AddButton( + const auto button = wrap->add(object_ptr( wrap, rpl::single(bot.name), - st::mainMenuButton); + st::mainMenuButton)); const auto menu = button->lifetime().make_state< base::unique_qptr >(); const auto icon = Ui::CreateChild( - button.get(), + button, bot.media); button->heightValue( ) | rpl::start_with_next([=](int height) { @@ -276,7 +270,7 @@ void SetupMenuBots( const auto badge = bots->showMainMenuNewBadge(bot) ? Ui::CreateChild>( - button.get(), + button, object_ptr( button, tr::lng_bot_side_menu_new(), diff --git a/Telegram/cmake/td_ui.cmake b/Telegram/cmake/td_ui.cmake index cdf8cbf278b88e..1046136366174d 100644 --- a/Telegram/cmake/td_ui.cmake +++ b/Telegram/cmake/td_ui.cmake @@ -368,6 +368,8 @@ PRIVATE ui/grouped_layout.h ui/power_saving.cpp ui/power_saving.h + ui/vertical_list.cpp + ui/vertical_list.h ui/unread_badge_paint.cpp ui/unread_badge_paint.h ui/userpic_view.cpp From f629bf76ffd797e179fa1616b3ecc980b16466bc Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 14 Nov 2023 23:59:21 +0300 Subject: [PATCH 005/122] Removed AddButton and CreateButton without icon from Settings. --- .../SourceFiles/boxes/auto_download_box.cpp | 4 +- Telegram/SourceFiles/boxes/background_box.cpp | 2 +- .../SourceFiles/boxes/edit_privacy_box.cpp | 2 +- .../boxes/filters/edit_filter_box.cpp | 6 +-- Telegram/SourceFiles/boxes/language_box.cpp | 16 +++--- .../boxes/peers/edit_linked_chat_box.cpp | 4 +- .../boxes/peers/edit_peer_color_box.cpp | 7 ++- .../boxes/peers/edit_peer_permissions_box.cpp | 2 +- .../boxes/peers/edit_peer_reactions.cpp | 19 +++---- .../boxes/reactions_settings_box.cpp | 4 +- Telegram/SourceFiles/boxes/ringtones_box.cpp | 2 +- Telegram/SourceFiles/boxes/sessions_box.cpp | 2 +- .../calls/group/calls_group_members.cpp | 2 +- .../calls/group/calls_group_settings.cpp | 36 +++++++------ .../controls/history_view_draft_options.cpp | 12 ++--- .../controls/history_view_forward_panel.cpp | 6 +-- .../info/boosts/create_giveaway_box.cpp | 2 +- .../info/media/info_media_buttons.h | 2 +- .../stories/info_stories_inner_widget.cpp | 6 +-- .../settings_cloud_password_common.cpp | 4 +- .../settings_cloud_password_manage.cpp | 4 +- .../settings/settings_advanced.cpp | 54 +++++++++---------- .../settings/settings_blocked_peers.cpp | 2 +- .../SourceFiles/settings/settings_calls.cpp | 8 +-- .../SourceFiles/settings/settings_chat.cpp | 24 ++++----- .../SourceFiles/settings/settings_common.cpp | 8 +-- .../SourceFiles/settings/settings_common.h | 4 +- .../settings/settings_experimental.cpp | 8 +-- .../SourceFiles/settings/settings_folders.cpp | 2 +- .../settings/settings_global_ttl.cpp | 10 ++-- .../settings/settings_information.cpp | 2 +- .../settings/settings_local_passcode.cpp | 2 +- .../SourceFiles/settings/settings_main.cpp | 16 +++--- .../settings/settings_notifications.cpp | 20 +++---- .../settings/settings_notifications_type.cpp | 8 +-- .../settings/settings_power_saving.cpp | 4 +- .../settings/settings_privacy_controllers.cpp | 2 +- .../settings/settings_privacy_security.cpp | 20 +++---- .../settings/settings_websites.cpp | 2 +- .../SourceFiles/window/window_main_menu.cpp | 6 +-- 40 files changed, 174 insertions(+), 172 deletions(-) diff --git a/Telegram/SourceFiles/boxes/auto_download_box.cpp b/Telegram/SourceFiles/boxes/auto_download_box.cpp index ed6ae59a330cb6..ae42f3cc8ab31f 100644 --- a/Telegram/SourceFiles/boxes/auto_download_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_download_box.cpp @@ -109,11 +109,11 @@ void AutoDownloadBox::setupContent() { Type type, rpl::producer label) { const auto value = settings->bytesLimit(_source, type); - AddButton( + content->add(object_ptr( content, std::move(label), st::settingsButtonNoIcon - )->toggleOn( + ))->toggleOn( rpl::single(value > 0) )->toggledChanges( ) | rpl::start_with_next([=](bool enabled) { diff --git a/Telegram/SourceFiles/boxes/background_box.cpp b/Telegram/SourceFiles/boxes/background_box.cpp index a18df1bfe5113b..4369863c95a7d5 100644 --- a/Telegram/SourceFiles/boxes/background_box.cpp +++ b/Telegram/SourceFiles/boxes/background_box.cpp @@ -168,7 +168,7 @@ void BackgroundBox::prepare() { Ui::AddSkip(container); - const auto button = container->add(Settings::CreateButton( + const auto button = container->add(object_ptr( container, tr::lng_settings_bg_from_file(), st::infoProfileButton)); diff --git a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp index 198ec9e93dac5a..d0591a1b5630f2 100644 --- a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp @@ -295,7 +295,7 @@ void EditPrivacyBox::setupContent() { const auto button = content->add( object_ptr>( content, - CreateButton( + object_ptr