diff --git a/Telegram/SourceFiles/settings/settings_experimental.cpp b/Telegram/SourceFiles/settings/settings_experimental.cpp index 9b2e5e34e..2ac4cdb4c 100644 --- a/Telegram/SourceFiles/settings/settings_experimental.cpp +++ b/Telegram/SourceFiles/settings/settings_experimental.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/options.h" #include "chat_helpers/tabbed_panel.h" #include "lang/lang_keys.h" +#include "window/window_peer_menu.h" #include "styles/style_settings.h" #include "styles/style_layers.h" @@ -62,6 +63,10 @@ void SetupExperimental( addToggle(ChatHelpers::kOptionTabbedPanelShowOnClick); AddSkip(container, st::settingsCheckboxesSkip); + + addToggle(Window::kOptionViewProfileInChatsListContextMenu); + + AddSkip(container, st::settingsCheckboxesSkip); } } // namespace diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index 13ab7f5e4..54330cbb8 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_chat_participants.h" #include "lang/lang_keys.h" #include "ui/boxes/confirm_box.h" +#include "base/options.h" #include "boxes/delete_messages_box.h" #include "boxes/max_invite_box.h" #include "boxes/mute_settings_box.h" @@ -69,11 +70,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include namespace Window { + +const char kOptionViewProfileInChatsListContextMenu[] = + "view-profile-in-chats-list-context-menu"; + namespace { constexpr auto kArchivedToastDuration = crl::time(5000); constexpr auto kMaxUnreadWithoutConfirmation = 10000; +base::options::toggle ViewProfileInChatsListContextMenu({ + .id = kOptionViewProfileInChatsListContextMenu, + .name = "Add \"View Profile\"", + .description = "Add \"View Profile\" to context menu in chats list", +}); + void SetActionText(not_null action, rpl::producer &&text) { const auto lifetime = Ui::CreateChild(action.get()); std::move( @@ -736,6 +747,9 @@ void Filler::fillChatsListActions() { addHidePromotion(); addToggleArchive(); addTogglePin(); + if (ViewProfileInChatsListContextMenu.value()) { + addInfo(); + } addToggleMute(); addToggleUnreadMark(); // addToFolder(); diff --git a/Telegram/SourceFiles/window/window_peer_menu.h b/Telegram/SourceFiles/window/window_peer_menu.h index 399fe64e2..549a9c2e7 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.h +++ b/Telegram/SourceFiles/window/window_peer_menu.h @@ -35,6 +35,8 @@ class Controller; class SessionController; class SessionNavigation; +extern const char kOptionViewProfileInChatsListContextMenu[]; + using PeerMenuCallback = Fn handler,