diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 40b4e2101..d74b30728 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -157,6 +157,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 28b55cbe3..764325b3f 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" @@ -386,7 +387,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 f06520b9c..09809911f 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings.cpp @@ -399,6 +399,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 a682a2680..ba42c9b21 100644 --- a/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/kotato_settings_menu.cpp @@ -240,6 +240,21 @@ void SetupKotatoChats( Ui::show(Box()); }); + 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);