diff --git a/Telegram/Resources/langs/rewrites/en.json b/Telegram/Resources/langs/rewrites/en.json index 6554ff55a..ee9d8ed6a 100644 --- a/Telegram/Resources/langs/rewrites/en.json +++ b/Telegram/Resources/langs/rewrites/en.json @@ -255,5 +255,6 @@ "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", "dummy_last_string": "" } diff --git a/Telegram/Resources/langs/rewrites/ru.json b/Telegram/Resources/langs/rewrites/ru.json index 00ad1df7d..04ba11ff8 100644 --- a/Telegram/Resources/langs/rewrites/ru.json +++ b/Telegram/Resources/langs/rewrites/ru.json @@ -273,5 +273,6 @@ "ktg_forward_grouping_mode_separate": "По отдельности", "ktg_forward_force_old_unquoted": "Старый метод пересылки без автора", "ktg_forward_force_old_unquoted_desc": "Старый метод копирует содержимое сообщений на клиенте вместо сервера. Сейчас он используется только в режиме группировки «Объединить медиа», так как новый его не поддерживает. Если по какой-то причине пересылка без автора не работает, попробуйте поменять эту настройку.", + "ktg_disable_chat_themes": "Отключить темы чатов", "dummy_last_string": "" } diff --git a/Telegram/SourceFiles/data/data_cloud_themes.cpp b/Telegram/SourceFiles/data/data_cloud_themes.cpp index 766554389..5d4c7e7bd 100644 --- a/Telegram/SourceFiles/data/data_cloud_themes.cpp +++ b/Telegram/SourceFiles/data/data_cloud_themes.cpp @@ -389,7 +389,7 @@ rpl::producer<> CloudThemes::chatThemesUpdated() const { std::optional CloudThemes::themeForEmoji( const QString &emoji) const { - if (emoji.isEmpty()) { + if (emoji.isEmpty() || cDisableChatThemes()) { return {}; } const auto i = ranges::find(_chatThemes, emoji, &ChatTheme::emoji); diff --git a/Telegram/SourceFiles/kotato/json_settings.cpp b/Telegram/SourceFiles/kotato/json_settings.cpp index 9e4305965..45d0e36b3 100644 --- a/Telegram/SourceFiles/kotato/json_settings.cpp +++ b/Telegram/SourceFiles/kotato/json_settings.cpp @@ -395,6 +395,7 @@ QByteArray GenerateSettingsJson(bool areDefault = false) { settings.insert(qsl("forward_mode"), ForwardMode()); settings.insert(qsl("forward_grouping_mode"), ForwardGroupingMode()); settings.insert(qsl("forward_force_old_unquoted"), cForwardForceOld()); + settings.insert(qsl("disable_chat_themes"), cDisableChatThemes()); settingsFonts.insert(qsl("size"), cFontSize()); settingsFonts.insert(qsl("use_system_font"), cUseSystemFont()); @@ -992,6 +993,9 @@ bool Manager::readCustomFile() { ReadBoolOption(settings, "forward_force_old_unquoted", [&](auto v) { cSetForwardForceOld(v); }); + ReadBoolOption(settings, "disable_chat_themes", [&](auto v) { + cSetDisableChatThemes(v); + }); return true; } diff --git a/Telegram/SourceFiles/kotato/settings.cpp b/Telegram/SourceFiles/kotato/settings.cpp index 8064ca036..0cb4a9c88 100644 --- a/Telegram/SourceFiles/kotato/settings.cpp +++ b/Telegram/SourceFiles/kotato/settings.cpp @@ -294,3 +294,5 @@ rpl::producer ForwardGroupingModeChanges() { } bool gForwardForceOld = false; + +bool gDisableChatThemes = false; diff --git a/Telegram/SourceFiles/kotato/settings.h b/Telegram/SourceFiles/kotato/settings.h index f765d14bb..549361fe9 100644 --- a/Telegram/SourceFiles/kotato/settings.h +++ b/Telegram/SourceFiles/kotato/settings.h @@ -186,3 +186,5 @@ void SetForwardGroupingMode(int mode); [[nodiscard]] rpl::producer ForwardGroupingModeChanges(); DeclareSetting(bool, ForwardForceOld); + +DeclareSetting(bool, DisableChatThemes); diff --git a/Telegram/SourceFiles/kotato/settings_menu.cpp b/Telegram/SourceFiles/kotato/settings_menu.cpp index 6d020adaa..7a9230933 100644 --- a/Telegram/SourceFiles/kotato/settings_menu.cpp +++ b/Telegram/SourceFiles/kotato/settings_menu.cpp @@ -32,6 +32,7 @@ https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL #include "core/application.h" #include "storage/localstorage.h" #include "data/data_session.h" +#include "data/data_cloud_themes.h" #include "main/main_session.h" #include "mainwindow.h" #include "facades.h" @@ -333,6 +334,21 @@ void SetupKotatoChats( }, true)); }); + AddButton( + container, + rktr("ktg_disable_chat_themes"), + st::settingsButton + )->toggleOn( + rpl::single(cDisableChatThemes()) + )->toggledValue( + ) | rpl::filter([](bool enabled) { + return (enabled != cDisableChatThemes()); + }) | rpl::start_with_next([controller](bool enabled) { + cSetDisableChatThemes(enabled); + controller->session().data().cloudThemes().refreshChatThemes(); + ::Kotato::JsonSettings::Write(); + }, container->lifetime()); + AddSkip(container); }