diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 9c4c51be6..249cb8f64 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -172,5 +172,7 @@ "ktg_settings_compress_images_default": "Compress images by default", "ktg_forward_quiz_unquoted": "Sorry, quizzes that are currently open and unvoted on cannot be forwarded unquoted.", "ktg_in_app_update_disabled": "In-app updater is disabled.", + "ktg_settings_view_profile_on_top": "Show \"View Profile\" first", + "ktg_settings_view_profile_on_top_about": "This option also enables \"Add \"View Profile\"\" from TDesktop's experimental settings.", "dummy_last_string": "" } diff --git a/Telegram/SourceFiles/kotato/kotato_settings.cpp b/Telegram/SourceFiles/kotato/kotato_settings.cpp index 49093c793..75589af4e 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings.cpp @@ -441,6 +441,9 @@ const std::map> DefinitionMap { { "remember_compress_images", { .type = SettingType::BoolSetting, .defaultValue = false, }}, + { "view_profile_on_top", { + .type = SettingType::BoolSetting, + .defaultValue = false, }}, }; using OldOptionKey = QString; diff --git a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp index 365fcd08c..d3a001a84 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp @@ -340,6 +340,28 @@ void SetupKotatoChats( ::Kotato::JsonSettings::Write(); }, container->lifetime()); + AddButton( + container, + rktr("ktg_settings_view_profile_on_top"), + st::settingsButtonNoIcon + )->toggleOn( + rpl::single(::Kotato::JsonSettings::GetBool("view_profile_on_top")) + )->toggledValue( + ) | rpl::filter([](bool enabled) { + return (enabled != ::Kotato::JsonSettings::GetBool("view_profile_on_top")); + }) | rpl::start_with_next([](bool enabled) { + ::Kotato::JsonSettings::Set("view_profile_on_top", enabled); + if (enabled) { + auto &option = ::base::options::lookup(Window::kOptionViewProfileInChatsListContextMenu); + option.set(true); + } + ::Kotato::JsonSettings::Write(); + }, container->lifetime()); + + AddSkip(container); + AddDividerText(container, rktr("ktg_settings_view_profile_on_top_about")); + AddSkip(container); + AddSkip(container); AddDivider(container); diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index b1aa70cf6..ff694c314 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -855,10 +855,15 @@ void Filler::fill() { } void Filler::fillChatsListActions() { + const auto profileEnabled = ViewProfileInChatsListContextMenu.value(); + const auto profileOnTop = ::Kotato::JsonSettings::GetBool("view_profile_on_top"); addHidePromotion(); + if (profileEnabled && profileOnTop) { + addInfo(); + } addToggleArchive(); addTogglePin(); - if (ViewProfileInChatsListContextMenu.value()) { + if (profileEnabled && !profileOnTop) { addInfo(); } addToggleMuteSubmenu(false);