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);