From 1186494b9194d36e01669001f10e8256f91a01c9 Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Thu, 17 Feb 2022 06:02:58 +0300 Subject: [PATCH] New option: "Show "View Profile" first" --- Telegram/Resources/langs/rewrites/en.json | 2 ++ Telegram/Resources/langs/rewrites/ru.json | 2 ++ .../SourceFiles/kotato/kotato_settings.cpp | 3 +++ .../kotato/kotato_settings_menu.cpp | 24 +++++++++++++++++-- .../SourceFiles/window/window_peer_menu.cpp | 9 ++++--- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 6f709d68c..dd94d6b5b 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -270,5 +270,7 @@ "ktg_experimental_view_profile_context_menu_description": "Add \"View Profile\" to context menu in chats list", "ktg_experimental_linux_nvidia_opengl": "Allow OpenGL on the NVIDIA drivers (Linux)", "ktg_experimental_linux_nvidia_opengl_description": "Qt+OpenGL have problems on Linux with NVIDIA drivers.", + "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/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index 178765130..3be9ed325 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -270,5 +270,7 @@ "ktg_experimental_view_profile_context_menu_description": "Добавить пункт \"Показать профиль\" в контекстное меню списка чатов.", "ktg_experimental_linux_nvidia_opengl": "OpenGL на драйверах NVIDIA (Linux)", "ktg_experimental_linux_nvidia_opengl_description": "У Qt+OpenGL есть проблемы на Linux с драйверами NVIDIA.", + "ktg_settings_view_profile_on_top": "\"Показать профиль\" первым пунктом меню", + "ktg_settings_view_profile_on_top_about": "Эта настройка также включает \"Добавить \"Показать профиль\"\" из экспериментальных настроек TDesktop.", "dummy_last_string": "" } diff --git a/Telegram/SourceFiles/kotato/kotato_settings.cpp b/Telegram/SourceFiles/kotato/kotato_settings.cpp index 882f3409f..94d98397a 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings.cpp @@ -460,6 +460,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 83ab345d3..9cf075c19 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp @@ -9,6 +9,7 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL #include "kotato/kotato_lang.h" #include "kotato/kotato_settings.h" +#include "base/options.h" #include "base/platform/base_platform_info.h" #include "settings/settings_common.h" #include "settings/settings_chat.h" @@ -26,6 +27,7 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL #include "ui/boxes/confirm_box.h" #include "platform/platform_specific.h" #include "platform/platform_file_utilities.h" +#include "window/window_peer_menu.h" #include "window/window_session_controller.h" #include "lang/lang_keys.h" #include "core/update_checker.h" @@ -336,12 +338,30 @@ void SetupKotatoChats( ::Kotato::JsonSettings::Write(); }, container->lifetime()); + AddButton( + container, + rktr("ktg_settings_view_profile_on_top"), + st::settingsButton + )->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); } void SetupKotatoMessages(not_null container) { - AddDivider(container); - AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_messages")); const auto stickerHeightLabel = container->add( diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index 4df4093a1..a0fb35b9f 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -773,11 +773,15 @@ void Filler::fill() { } void Filler::fillChatsListActions() { + const auto profileEnabled = ViewProfileInChatsListContextMenu.value(); + const auto profileOnTop = ::Kotato::JsonSettings::GetBool("view_profile_on_top"); addHidePromotion(); - addInfo(); + if (profileEnabled && profileOnTop) { + addInfo(); + } addToggleArchive(); addTogglePin(); - if (ViewProfileInChatsListContextMenu.value()) { + if (profileEnabled && !profileOnTop) { addInfo(); } addToggleMute(); @@ -794,7 +798,6 @@ void Filler::fillChatsListActions() { } void Filler::fillHistoryActions() { - addInfo(); addToggleMute(); addSupportInfo(); addHidePin();