From ec519e77bfc6c6a7b0eee4d6e78fe39af719c394 Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Sat, 10 Sep 2022 19:45:18 +0300 Subject: [PATCH] [Option][GUI] Disable chat themes --- Telegram/Resources/langs/rewrites/en.json | 1 + Telegram/SourceFiles/data/data_cloud_themes.cpp | 3 ++- Telegram/SourceFiles/kotato/kotato_settings.cpp | 3 +++ .../SourceFiles/kotato/kotato_settings_menu.cpp | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 61ba0d026..66cfd57e6 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -171,6 +171,7 @@ "ktg_forward_grouping_mode_separate": "Separate", "ktg_forward_force_old_unquoted": "Old unquoted forward method", "ktg_forward_force_old_unquoted_desc": "Old method copies messages content on client rather than server. Currently it's used only for \"Regroup media\" grouping mode, since new one doesn't support it. If for some reason unquoted forward doesn't work correctly, try switching this option.", + "ktg_disable_chat_themes": "Disable chat themes", "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.", "dummy_last_string": "" diff --git a/Telegram/SourceFiles/data/data_cloud_themes.cpp b/Telegram/SourceFiles/data/data_cloud_themes.cpp index f9c6c40a3..4994a47c3 100644 --- a/Telegram/SourceFiles/data/data_cloud_themes.cpp +++ b/Telegram/SourceFiles/data/data_cloud_themes.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_cloud_themes.h" #include "kotato/kotato_lang.h" +#include "kotato/kotato_settings.h" #include "window/themes/window_theme.h" #include "window/themes/window_theme_preview.h" #include "window/themes/window_theme_editor_box.h" @@ -390,7 +391,7 @@ rpl::producer<> CloudThemes::chatThemesUpdated() const { std::optional CloudThemes::themeForEmoji( const QString &emoticon) const { const auto emoji = Ui::Emoji::Find(emoticon); - if (!emoji) { + if (!emoji || ::Kotato::JsonSettings::GetBool("disable_chat_themes")) { return {}; } const auto i = ranges::find(_chatThemes, emoji, [](const CloudTheme &v) { diff --git a/Telegram/SourceFiles/kotato/kotato_settings.cpp b/Telegram/SourceFiles/kotato/kotato_settings.cpp index bef4093d4..37e6fdb71 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings.cpp @@ -456,6 +456,9 @@ const std::map> DefinitionMap { { "forward_force_old_unquoted", { .type = SettingType::BoolSetting, .defaultValue = false, }}, + { "disable_chat_themes", { + .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 a10c31818..bf114dfd5 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp @@ -337,6 +337,21 @@ void SetupKotatoChats( }, true)); }); + AddButton( + container, + rktr("ktg_disable_chat_themes"), + st::settingsButton + )->toggleOn( + rpl::single(::Kotato::JsonSettings::GetBool("disable_chat_themes")) + )->toggledValue( + ) | rpl::filter([](bool enabled) { + return (enabled != ::Kotato::JsonSettings::GetBool("disable_chat_themes")); + }) | rpl::start_with_next([controller](bool enabled) { + ::Kotato::JsonSettings::Set("disable_chat_themes", enabled); + controller->session().data().cloudThemes().refreshChatThemes(); + ::Kotato::JsonSettings::Write(); + }, container->lifetime()); + AddSkip(container); AddDivider(container);