diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 70971d17a..414e269ba 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -167,6 +167,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 96a6bf044..57103ad94 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" @@ -388,7 +389,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 82ca52ee5..e3fa59986 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings.cpp @@ -435,6 +435,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 b076348ad..468b0e916 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp @@ -325,6 +325,21 @@ void SetupKotatoChats( }, true)); }); + AddButton( + container, + rktr("ktg_disable_chat_themes"), + st::settingsButtonNoIcon + )->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);