From 439a8543e28a2e3a2d65cfe7d73bedb496db8211 Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Sun, 1 Mar 2026 20:47:36 +0300 Subject: [PATCH] chore: refactor icon picker & reorder includes --- Telegram/SourceFiles/ayu/ayu_infra.cpp | 15 +- Telegram/SourceFiles/ayu/ayu_lang.cpp | 8 +- Telegram/SourceFiles/ayu/ayu_settings.cpp | 4 +- Telegram/SourceFiles/ayu/ayu_state.cpp | 2 +- Telegram/SourceFiles/ayu/ayu_url_handlers.cpp | 3 +- Telegram/SourceFiles/ayu/ayu_worker.cpp | 2 +- .../SourceFiles/ayu/data/ayu_database.cpp | 5 +- Telegram/SourceFiles/ayu/data/ayu_database.h | 4 +- .../SourceFiles/ayu/data/messages_storage.cpp | 4 - .../SourceFiles/ayu/data/messages_storage.h | 4 +- .../filters/filters_cache_controller.cpp | 8 +- .../filters/filters_cache_controller.h | 2 +- .../features/filters/filters_controller.cpp | 22 +-- .../ayu/features/filters/filters_controller.h | 3 +- .../ayu/features/filters/filters_utils.cpp | 31 ++-- .../ayu/features/filters/filters_utils.h | 6 +- .../ayu/features/forward/ayu_forward.cpp | 6 +- .../ayu/features/forward/ayu_sync.cpp | 5 +- .../features/message_shot/message_shot.cpp | 7 +- .../message_shot/message_shot_theme_state.cpp | 2 +- .../features/streamer_mode/streamer_mode.cpp | 2 +- .../features/translator/ayu_translator.cpp | 22 +-- .../ayu/features/translator/ayu_translator.h | 3 +- .../ayu/features/translator/html_parser.cpp | 2 +- .../ayu/features/translator/html_parser.h | 3 +- .../translator/implementations/base.cpp | 15 +- .../translator/implementations/base.h | 7 +- .../translator/implementations/google.cpp | 10 +- .../translator/implementations/google.h | 4 +- .../translator/implementations/telegram.cpp | 6 +- .../translator/implementations/telegram.h | 4 +- .../translator/implementations/yandex.cpp | 6 +- .../translator/implementations/yandex.h | 4 +- Telegram/SourceFiles/ayu/ui/ayu_logo.cpp | 21 +-- Telegram/SourceFiles/ayu/ui/ayu_logo.h | 1 + Telegram/SourceFiles/ayu/ui/ayu_styles.style | 12 +- .../ayu/ui/boxes/donate_info_box.cpp | 8 +- .../ayu/ui/boxes/donate_qr_box.cpp | 7 +- .../ayu/ui/boxes/edit_mark_box.cpp | 7 +- .../ayu/ui/boxes/font_selector.cpp | 56 ++++---- .../ayu/ui/boxes/import_filters_box.cpp | 26 ++-- .../ayu/ui/boxes/message_shot_box.cpp | 14 +- .../ayu/ui/boxes/theme_selector_box.cpp | 2 +- .../ayu/ui/components/icon_picker.cpp | 135 +++++++++--------- .../ayu/ui/components/icon_picker.h | 13 +- .../ayu/ui/components/image_view.cpp | 5 +- .../ayu/ui/components/saved_music.cpp | 9 +- .../ayu/ui/context_menu/context_menu.cpp | 22 ++- .../ayu/ui/context_menu/menu_item_subtext.cpp | 5 +- .../ayu/ui/message_history/history_item.cpp | 10 +- .../ayu/ui/settings/filters/edit_filter.cpp | 4 +- .../ui/settings/filters/per_dialog_filter.cpp | 8 +- .../filters/settings_filters_list.cpp | 8 +- .../ayu/ui/settings/settings_appearance.cpp | 17 ++- .../ayu/ui/settings/settings_ayu.cpp | 4 +- .../ayu/ui/settings/settings_ayu_utils.cpp | 2 +- .../ayu/ui/settings/settings_chats.cpp | 2 +- .../ayu/ui/settings/settings_filters.cpp | 2 +- .../ayu/ui/settings/settings_general.cpp | 2 +- .../ayu/ui/settings/settings_main.cpp | 18 +-- .../ayu/ui/settings/settings_other.cpp | 11 +- .../ayu/ui/utils/ayu_profile_values.cpp | 4 +- .../ayu/ui/utils/color_cut_quantizer.cpp | 3 +- .../ayu/ui/utils/color_cut_quantizer.h | 7 +- .../SourceFiles/ayu/ui/utils/color_utils.cpp | 6 +- .../ayu/ui/utils/itunes_search.cpp | 2 +- Telegram/SourceFiles/ayu/ui/utils/palette.cpp | 9 +- Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp | 3 +- Telegram/SourceFiles/ayu/utils/rc_manager.cpp | 2 +- Telegram/SourceFiles/ayu/utils/rc_manager.h | 4 +- .../platform/taptic_engine_dummy.cpp | 2 +- .../ayu/utils/taptic_engine/taptic_engine.cpp | 2 +- .../ayu/utils/telegram_helpers.cpp | 55 ++++--- .../SourceFiles/ayu/utils/telegram_helpers.h | 3 +- .../SourceFiles/ayu/utils/windows_utils.cpp | 13 +- 75 files changed, 375 insertions(+), 402 deletions(-) diff --git a/Telegram/SourceFiles/ayu/ayu_infra.cpp b/Telegram/SourceFiles/ayu/ayu_infra.cpp index 618adb22f8..2321b19761 100644 --- a/Telegram/SourceFiles/ayu/ayu_infra.cpp +++ b/Telegram/SourceFiles/ayu/ayu_infra.cpp @@ -4,17 +4,22 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_infra.h" +#include "ayu/ayu_infra.h" #include "ayu/ayu_lang.h" #include "ayu/ayu_settings.h" #include "ayu/ayu_ui_settings.h" #include "ayu/ayu_worker.h" #include "ayu/data/ayu_database.h" +#include "ayu/ui/ayu_logo.h" #include "features/translator/ayu_translator.h" #include "lang/lang_instance.h" #include "utils/rc_manager.h" +#ifdef Q_OS_WIN +#include "ayu/utils/windows_utils.h" +#endif + namespace AyuInfra { void initLang() { @@ -53,10 +58,18 @@ void initTranslator() { Ayu::Translator::TranslateManager::init(); } +void initIcon() { +#ifdef Q_OS_WIN + AyuAssets::loadAppIco(); + reloadAppIconFromTaskBar(); +#endif +} + void init() { initLang(); initDatabase(); initUiSettings(); + initIcon(); initWorker(); initRCManager(); initTranslator(); diff --git a/Telegram/SourceFiles/ayu/ayu_lang.cpp b/Telegram/SourceFiles/ayu/ayu_lang.cpp index 2d2df4e075..1170719022 100644 --- a/Telegram/SourceFiles/ayu/ayu_lang.cpp +++ b/Telegram/SourceFiles/ayu/ayu_lang.cpp @@ -4,10 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_lang.h" - -#include -#include +#include "ayu/ayu_lang.h" #include "qjsondocument.h" #include "core/application.h" @@ -15,6 +12,9 @@ #include "lang/lang_instance.h" #include "storage/localstorage.h" +#include +#include + // hard-coded languages std::map langMapping = { {"pt-br", "pt"}, diff --git a/Telegram/SourceFiles/ayu/ayu_settings.cpp b/Telegram/SourceFiles/ayu/ayu_settings.cpp index d7b9b2198a..4f438a9e5f 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.cpp +++ b/Telegram/SourceFiles/ayu/ayu_settings.cpp @@ -4,12 +4,12 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_settings.h" +#include "ayu/ayu_settings.h" -#include "ayu_worker.h" #include "lang_auto.h" #include "tray.h" #include "ayu/ayu_ui_settings.h" +#include "ayu/ayu_worker.h" #include "ayu/ui/ayu_logo.h" #include "core/application.h" #include "features/filters/filters_cache_controller.h" diff --git a/Telegram/SourceFiles/ayu/ayu_state.cpp b/Telegram/SourceFiles/ayu/ayu_state.cpp index a4a23d3947..995ef6bea6 100644 --- a/Telegram/SourceFiles/ayu/ayu_state.cpp +++ b/Telegram/SourceFiles/ayu/ayu_state.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_state.h" +#include "ayu/ayu_state.h" namespace AyuState { diff --git a/Telegram/SourceFiles/ayu/ayu_url_handlers.cpp b/Telegram/SourceFiles/ayu/ayu_url_handlers.cpp index ca7a28c2e0..7393312af2 100644 --- a/Telegram/SourceFiles/ayu/ayu_url_handlers.cpp +++ b/Telegram/SourceFiles/ayu/ayu_url_handlers.cpp @@ -6,7 +6,6 @@ // Copyright @Radolyn, 2026 #include "ayu/ayu_url_handlers.h" -#include #include "lang_auto.h" #include "mainwindow.h" #include "ayu/ui/settings/settings_main.h" @@ -22,6 +21,8 @@ #include "ui/boxes/donate_info_box.h" #include "window/window_controller.h" +#include + namespace AyuUrlHandlers { bool ResolveUser( diff --git a/Telegram/SourceFiles/ayu/ayu_worker.cpp b/Telegram/SourceFiles/ayu/ayu_worker.cpp index 42f65f7ec1..c445511035 100644 --- a/Telegram/SourceFiles/ayu/ayu_worker.cpp +++ b/Telegram/SourceFiles/ayu/ayu_worker.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_worker.h" +#include "ayu/ayu_worker.h" #include "apiwrap.h" #include "ayu_settings.h" diff --git a/Telegram/SourceFiles/ayu/data/ayu_database.cpp b/Telegram/SourceFiles/ayu/data/ayu_database.cpp index 0ffd798231..cda6a21935 100644 --- a/Telegram/SourceFiles/ayu/data/ayu_database.cpp +++ b/Telegram/SourceFiles/ayu/data/ayu_database.cpp @@ -6,11 +6,8 @@ // Copyright @Radolyn, 2026 #include "ayu/data/ayu_database.h" -#include - -#include "entities.h" +#include "ayu/data/entities.h" #include "ayu/libs/sqlite/sqlite_orm.h" - #include "base/unixtime.h" using namespace sqlite_orm; diff --git a/Telegram/SourceFiles/ayu/data/ayu_database.h b/Telegram/SourceFiles/ayu/data/ayu_database.h index 0c1615785f..c78c0e1b1c 100644 --- a/Telegram/SourceFiles/ayu/data/ayu_database.h +++ b/Telegram/SourceFiles/ayu/data/ayu_database.h @@ -6,9 +6,9 @@ // Copyright @Radolyn, 2026 #pragma once -#include "entities.h" -#include +#include "ayu/data/entities.h" +#include class SchemaVersion { diff --git a/Telegram/SourceFiles/ayu/data/messages_storage.cpp b/Telegram/SourceFiles/ayu/data/messages_storage.cpp index 5827146175..bc827ba5cf 100644 --- a/Telegram/SourceFiles/ayu/data/messages_storage.cpp +++ b/Telegram/SourceFiles/ayu/data/messages_storage.cpp @@ -9,16 +9,12 @@ #include "ayu/data/ayu_database.h" #include "ayu/utils/ayu_mapper.h" #include "ayu/utils/telegram_helpers.h" - #include "base/unixtime.h" - #include "data/data_forum_topic.h" #include "data/data_session.h" - #include "history/history.h" #include "history/history_item.h" #include "history/history_item_components.h" - #include "main/main_session.h" namespace AyuMessages { diff --git a/Telegram/SourceFiles/ayu/data/messages_storage.h b/Telegram/SourceFiles/ayu/data/messages_storage.h index 910683f452..abb14f4abb 100644 --- a/Telegram/SourceFiles/ayu/data/messages_storage.h +++ b/Telegram/SourceFiles/ayu/data/messages_storage.h @@ -6,9 +6,7 @@ // Copyright @Radolyn, 2026 #pragma once -#include "entities.h" - -#include "history/history_item_edition.h" +#include "ayu/data/entities.h" namespace AyuMessages { diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.cpp b/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.cpp index 081c0dab77..ef93014630 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.cpp +++ b/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.cpp @@ -4,12 +4,10 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "filters_cache_controller.h" +#include "ayu/features/filters/filters_cache_controller.h" -#include - -#include "filters_controller.h" #include "ayu/data/ayu_database.h" +#include "ayu/features/filters/filters_controller.h" #include "data/data_groups.h" #include "data/data_peer.h" #include "data/data_session.h" @@ -17,6 +15,8 @@ #include "history/history_item.h" #include "rpl/event_stream.h" +#include + static std::mutex mutex; namespace FiltersCacheController { diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.h b/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.h index 1fbf258d12..f4c614ee1a 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.h +++ b/Telegram/SourceFiles/ayu/features/filters/filters_cache_controller.h @@ -6,8 +6,8 @@ // Copyright @Radolyn, 2026 #pragma once -#include "filters_controller.h" #include "ayu/data/entities.h" +#include "ayu/features/filters/filters_controller.h" #include "rpl/producer.h" namespace Data { diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_controller.cpp b/Telegram/SourceFiles/ayu/features/filters/filters_controller.cpp index 3fb948b1c5..8636e0de7d 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_controller.cpp +++ b/Telegram/SourceFiles/ayu/features/filters/filters_controller.cpp @@ -5,28 +5,20 @@ // // Copyright @Radolyn, 2026 -#include "filters_controller.h" +#include "ayu/features/filters/filters_controller.h" -#include "filters_cache_controller.h" #include "ayu/ayu_settings.h" +#include "ayu/features/filters/filters_cache_controller.h" +#include "ayu/features/filters/filters_utils.h" +#include "ayu/utils/telegram_helpers.h" #include "data/data_peer.h" +#include "data/data_peer_id.h" +#include "data/data_session.h" #include "data/data_user.h" #include "history/history.h" #include "history/history_item.h" -#include "unicode/regex.h" - -#include - -#include "ayu/data/entities.h" -#include "core/mime_type.h" -#include "data/data_channel.h" -#include "data/data_peer_id.h" - -#include "data/data_session.h" #include "history/history_item_components.h" - -#include "filters_utils.h" -#include "ayu/utils/telegram_helpers.h" +#include "unicode/regex.h" namespace FiltersController { diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_controller.h b/Telegram/SourceFiles/ayu/features/filters/filters_controller.h index af6f4dcd61..1b720c7de5 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_controller.h +++ b/Telegram/SourceFiles/ayu/features/filters/filters_controller.h @@ -6,9 +6,10 @@ // Copyright @Radolyn, 2026 #pragma once +#include "unicode/regex.h" + #include #include -#include "unicode/regex.h" using namespace icu_78; diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_utils.cpp b/Telegram/SourceFiles/ayu/features/filters/filters_utils.cpp index 08402b99d8..bf237028b1 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_utils.cpp +++ b/Telegram/SourceFiles/ayu/features/filters/filters_utils.cpp @@ -4,7 +4,22 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "filters_utils.h" +#include "ayu/features/filters/filters_utils.h" + +#include "lang_auto.h" +#include "ayu/ayu_settings.h" +#include "ayu/data/ayu_database.h" +#include "ayu/features/filters/filters_cache_controller.h" +#include "ayu/utils/telegram_helpers.h" +#include "data/data_document.h" +#include "data/data_peer.h" +#include "data/data_session.h" +#include "history/history.h" +#include "history/history_item.h" +#include "main/main_account.h" +#include "main/main_domain.h" +#include "main/main_session.h" +#include "ui/toast/toast.h" #include #include @@ -16,20 +31,6 @@ #include #include #include -#include "filters_cache_controller.h" -#include "lang_auto.h" -#include "ayu/ayu_settings.h" -#include "ayu/data/ayu_database.h" -#include "ayu/utils/telegram_helpers.h" -#include "data/data_document.h" -#include "data/data_peer.h" -#include "data/data_session.h" -#include "history/history.h" -#include "history/history_item.h" -#include "main/main_account.h" -#include "main/main_domain.h" -#include "main/main_session.h" -#include "ui/toast/toast.h" constexpr auto BACKUP_VERSION = 2; diff --git a/Telegram/SourceFiles/ayu/features/filters/filters_utils.h b/Telegram/SourceFiles/ayu/features/filters/filters_utils.h index d6592d5c74..84624d6403 100644 --- a/Telegram/SourceFiles/ayu/features/filters/filters_utils.h +++ b/Telegram/SourceFiles/ayu/features/filters/filters_utils.h @@ -5,15 +5,15 @@ // // Copyright @Radolyn, 2026 #pragma once -#include -#include #include "ayu/data/entities.h" #include "core/application.h" - #include "data/data_session.h" #include "history/history_item_components.h" +#include +#include + struct ApplyChanges { std::vector newFilters; diff --git a/Telegram/SourceFiles/ayu/features/forward/ayu_forward.cpp b/Telegram/SourceFiles/ayu/features/forward/ayu_forward.cpp index fcb03e7221..aad3e5d0a2 100644 --- a/Telegram/SourceFiles/ayu/features/forward/ayu_forward.cpp +++ b/Telegram/SourceFiles/ayu/features/forward/ayu_forward.cpp @@ -4,10 +4,11 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_forward.h" +#include "ayu/features/forward/ayu_forward.h" + #include "apiwrap.h" -#include "ayu_sync.h" #include "lang_auto.h" +#include "ayu/features/forward/ayu_sync.h" #include "ayu/utils/telegram_helpers.h" #include "base/random.h" #include "base/unixtime.h" @@ -18,7 +19,6 @@ #include "data/data_photo.h" #include "data/data_session.h" #include "history/history_item.h" -#include "storage/file_download.h" #include "storage/localimageloader.h" #include "storage/storage_account.h" #include "storage/storage_media_prepare.h" diff --git a/Telegram/SourceFiles/ayu/features/forward/ayu_sync.cpp b/Telegram/SourceFiles/ayu/features/forward/ayu_sync.cpp index 6cd82052f9..857be34759 100644 --- a/Telegram/SourceFiles/ayu/features/forward/ayu_sync.cpp +++ b/Telegram/SourceFiles/ayu/features/forward/ayu_sync.cpp @@ -4,9 +4,10 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_sync.h" -#include "api/api_sending.h" +#include "ayu/features/forward/ayu_sync.h" + #include "apiwrap.h" +#include "api/api_sending.h" #include "ayu/utils/telegram_helpers.h" #include "core/application.h" #include "core/core_settings.h" diff --git a/Telegram/SourceFiles/ayu/features/message_shot/message_shot.cpp b/Telegram/SourceFiles/ayu/features/message_shot/message_shot.cpp index 083f91449e..094c479a82 100644 --- a/Telegram/SourceFiles/ayu/features/message_shot/message_shot.cpp +++ b/Telegram/SourceFiles/ayu/features/message_shot/message_shot.cpp @@ -4,10 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "message_shot.h" - -#include "styles/style_ayu_styles.h" -#include "styles/style_layers.h" +#include "ayu/features/message_shot/message_shot.h" #include "qguiapplication.h" #include "ayu/ayu_settings.h" @@ -30,7 +27,9 @@ #include "history/view/history_view_element.h" #include "history/view/media/history_view_media.h" #include "main/main_session.h" +#include "styles/style_ayu_styles.h" #include "styles/style_chat.h" +#include "styles/style_layers.h" #include "ui/painter.h" #include "ui/chat/chat_theme.h" #include "ui/effects/path_shift_gradient.h" diff --git a/Telegram/SourceFiles/ayu/features/message_shot/message_shot_theme_state.cpp b/Telegram/SourceFiles/ayu/features/message_shot/message_shot_theme_state.cpp index e678db9899..a6093a3df4 100644 --- a/Telegram/SourceFiles/ayu/features/message_shot/message_shot_theme_state.cpp +++ b/Telegram/SourceFiles/ayu/features/message_shot/message_shot_theme_state.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "message_shot_theme_state.h" +#include "ayu/features/message_shot/message_shot_theme_state.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" diff --git a/Telegram/SourceFiles/ayu/features/streamer_mode/streamer_mode.cpp b/Telegram/SourceFiles/ayu/features/streamer_mode/streamer_mode.cpp index 9359c479b0..d15515ac16 100644 --- a/Telegram/SourceFiles/ayu/features/streamer_mode/streamer_mode.cpp +++ b/Telegram/SourceFiles/ayu/features/streamer_mode/streamer_mode.cpp @@ -5,7 +5,7 @@ // // Copyright @Radolyn, 2026 -#include "streamer_mode.h" +#include "ayu/features/streamer_mode/streamer_mode.h" #include "window/window_controller.h" diff --git a/Telegram/SourceFiles/ayu/features/translator/ayu_translator.cpp b/Telegram/SourceFiles/ayu/features/translator/ayu_translator.cpp index 40a5d7f58f..cb4927bc2c 100644 --- a/Telegram/SourceFiles/ayu/features/translator/ayu_translator.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/ayu_translator.cpp @@ -4,23 +4,23 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_translator.h" +#include "ayu/features/translator/ayu_translator.h" + +#include "api/api_text_entities.h" +#include "ayu/ayu_settings.h" +#include "ayu/features/translator/implementations/google.h" +#include "ayu/features/translator/implementations/telegram.h" +#include "ayu/features/translator/implementations/yandex.h" +#include "data/data_peer.h" +#include "data/data_session.h" +#include "history/history_item.h" +#include "main/main_session.h" #include #include #include #include -#include "api/api_text_entities.h" -#include "ayu/ayu_settings.h" -#include "data/data_peer.h" -#include "data/data_session.h" -#include "history/history_item.h" -#include "implementations/google.h" -#include "implementations/telegram.h" -#include "implementations/yandex.h" -#include "main/main_session.h" - // todo: expose available languages from current translator and use in `ChooseTranslateToBox` namespace Ayu::Translator { diff --git a/Telegram/SourceFiles/ayu/features/translator/ayu_translator.h b/Telegram/SourceFiles/ayu/features/translator/ayu_translator.h index bc3719da43..19c3f2e50a 100644 --- a/Telegram/SourceFiles/ayu/features/translator/ayu_translator.h +++ b/Telegram/SourceFiles/ayu/features/translator/ayu_translator.h @@ -6,6 +6,7 @@ // Copyright @Radolyn, 2026 #pragma once +#include "ayu/features/translator/implementations/base.h" #include "mtproto/sender.h" #include @@ -13,8 +14,6 @@ #include #include -#include "implementations/base.h" - class QNetworkReply; namespace Main { diff --git a/Telegram/SourceFiles/ayu/features/translator/html_parser.cpp b/Telegram/SourceFiles/ayu/features/translator/html_parser.cpp index 7a80b62d1c..f25f05068d 100644 --- a/Telegram/SourceFiles/ayu/features/translator/html_parser.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/html_parser.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "html_parser.h" +#include "ayu/features/translator/html_parser.h" namespace Ayu::Translator::Html { diff --git a/Telegram/SourceFiles/ayu/features/translator/html_parser.h b/Telegram/SourceFiles/ayu/features/translator/html_parser.h index b3fc1ce98a..d16b5ab75c 100644 --- a/Telegram/SourceFiles/ayu/features/translator/html_parser.h +++ b/Telegram/SourceFiles/ayu/features/translator/html_parser.h @@ -6,9 +6,10 @@ // Copyright @Radolyn, 2026 #pragma once -#include #include "ui/text/text_entity.h" +#include + namespace Ayu::Translator::Html { [[nodiscard]] QString entitiesToHtml(const TextWithEntities &text); diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/base.cpp b/Telegram/SourceFiles/ayu/features/translator/implementations/base.cpp index cc0ca8fc5b..20dbc0fafc 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/base.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/base.cpp @@ -4,20 +4,19 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include -#include -#include -#include -#include -#include +#include "ayu/features/translator/implementations/base.h" #include "base/random.h" #include #include #include - -#include "./base.h" +#include +#include +#include +#include +#include +#include namespace Ayu::Translator { diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/base.h b/Telegram/SourceFiles/ayu/features/translator/implementations/base.h index 995284484c..e5b66c76f9 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/base.h +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/base.h @@ -6,16 +6,15 @@ // Copyright @Radolyn, 2026 #pragma once +#include "apiwrap.h" + +#include #include #include #include #include #include -#include - -#include "apiwrap.h" - namespace Main { class Session; } diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/google.cpp b/Telegram/SourceFiles/ayu/features/translator/implementations/google.cpp index 5dcc920132..cfd36290a4 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/google.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/google.cpp @@ -4,7 +4,9 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "google.h" +#include "ayu/features/translator/implementations/google.h" + +#include "ayu/features/translator/html_parser.h" #include #include @@ -14,12 +16,10 @@ #include #include #include -#include -#include #include #include - -#include "ayu/features/translator/html_parser.h" +#include +#include namespace Ayu::Translator { diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/google.h b/Telegram/SourceFiles/ayu/features/translator/implementations/google.h index dc84234cf2..c008ac948d 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/google.h +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/google.h @@ -6,13 +6,13 @@ // Copyright @Radolyn, 2026 #pragma once +#include "ayu/features/translator/implementations/base.h" + #include #include #include #include -#include "./base.h" - namespace Ayu::Translator { class GoogleTranslator final : public MultiThreadTranslator diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.cpp b/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.cpp index 38ec5262ff..78bca3c4ba 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.cpp @@ -4,13 +4,13 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "telegram.h" - -#include +#include "ayu/features/translator/implementations/telegram.h" #include "api/api_text_entities.h" #include "main/main_session.h" +#include + namespace Ayu::Translator { TelegramTranslator &TelegramTranslator::instance() { diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.h b/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.h index e451c01869..ba4523df15 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.h +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/telegram.h @@ -6,12 +6,12 @@ // Copyright @Radolyn, 2026 #pragma once +#include "ayu/features/translator/implementations/base.h" + #include #include #include -#include "./base.h" - namespace Ayu::Translator { class TelegramTranslator final : public BaseTranslator diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.cpp b/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.cpp index 23a96e96da..baef43d6a2 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.cpp +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.cpp @@ -4,7 +4,9 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "yandex.h" +#include "ayu/features/translator/implementations/yandex.h" + +#include "ayu/features/translator/html_parser.h" #include #include @@ -15,8 +17,6 @@ #include #include -#include "ayu/features/translator/html_parser.h" - namespace Ayu::Translator { YandexTranslator &YandexTranslator::instance() { diff --git a/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.h b/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.h index ed84009b25..02f6450100 100644 --- a/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.h +++ b/Telegram/SourceFiles/ayu/features/translator/implementations/yandex.h @@ -6,13 +6,13 @@ // Copyright @Radolyn, 2026 #pragma once +#include "ayu/features/translator/implementations/base.h" + #include #include #include #include -#include "./base.h" - namespace Ayu::Translator { class YandexTranslator final : public MultiThreadTranslator diff --git a/Telegram/SourceFiles/ayu/ui/ayu_logo.cpp b/Telegram/SourceFiles/ayu/ui/ayu_logo.cpp index 74d369711a..acf10805d2 100644 --- a/Telegram/SourceFiles/ayu/ui/ayu_logo.cpp +++ b/Telegram/SourceFiles/ayu/ui/ayu_logo.cpp @@ -4,34 +4,35 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_logo.h" - -#include +#include "ayu/ui/ayu_logo.h" #include "ayu/ayu_settings.h" #include "styles/style_ayu_styles.h" #include "ui/rect.h" +#include + static QString LAST_LOADED_NAME; static QImage LAST_LOADED; static QImage LAST_LOADED_PAD; namespace AyuAssets { +QString appIcoPath() { + return cWorkingDir() + u"tdata/AyuGram.ico"_q; +} + void loadAppIco() { const auto &settings = AyuSettings::getInstance(); + const auto iconPath = appIcoPath(); - QString appDataPath = QDir::fromNativeSeparators(qgetenv("APPDATA")); - QString tempIconPath = appDataPath + "/AyuGram.ico"; - - // workaround for read-only file - auto f = QFile(tempIconPath); + auto f = QFile(iconPath); if (f.exists()) { f.setPermissions(QFile::WriteOther); f.remove(); } f.close(); - QFile::copy(qsl(":/gui/art/ayu/%1/app_icon.ico").arg(settings.appIcon()), tempIconPath); + QFile::copy(qsl(":/gui/art/ayu/%1/app_icon.ico").arg(settings.appIcon()), iconPath); } QImage CreateImage(const QString &name, const QSize resultImageSize, const int padding = 0) { @@ -96,7 +97,7 @@ void loadIcons() { } QImage loadPreview(const QString &name) { - return CreateImage(name, Size(st::cpIconSize), st::cpImagePadding); + return CreateImage(name, Size(st::iconPickerIconSize), st::iconPickerImagePadding); } QString currentAppLogoName() { diff --git a/Telegram/SourceFiles/ayu/ui/ayu_logo.h b/Telegram/SourceFiles/ayu/ui/ayu_logo.h index 4d3efdf368..762bd564c2 100644 --- a/Telegram/SourceFiles/ayu/ui/ayu_logo.h +++ b/Telegram/SourceFiles/ayu/ui/ayu_logo.h @@ -24,6 +24,7 @@ ICON(CHIBI2, "chibi2"); ICON(EXTERA2, "extera2"); void loadAppIco(); +QString appIcoPath(); QImage loadPreview(const QString& name); diff --git a/Telegram/SourceFiles/ayu/ui/ayu_styles.style b/Telegram/SourceFiles/ayu/ui/ayu_styles.style index 341f757b9f..6fcab4d31a 100644 --- a/Telegram/SourceFiles/ayu/ui/ayu_styles.style +++ b/Telegram/SourceFiles/ayu/ui/ayu_styles.style @@ -13,14 +13,10 @@ using "ui/widgets/widgets.style"; using "info/info.style"; using "settings/settings.style"; -/* Icon Picker */ -cpPadding: 14px; -cpSelectedPadding: 2px; -cpSelectedRounding: 12px; -cpImagePadding: 4px; -cpSpacingX: 16px; -cpSpacingY: 8px; -cpIconSize: 64px; +iconPickerSelectedPadding: 2px; +iconPickerSelectedRounding: 12px; +iconPickerImagePadding: 4px; +iconPickerIconSize: 64px; recentStickersLimitPadding: margins(22px, 4px, 22px, 8px); imageViewPadding: margins(22px, 10px, 22px, 10px); diff --git a/Telegram/SourceFiles/ayu/ui/boxes/donate_info_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/donate_info_box.cpp index 296784f48c..4c914225e7 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/donate_info_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/donate_info_box.cpp @@ -6,17 +6,13 @@ // Copyright @Radolyn, 2026 #include "ayu/ui/boxes/donate_info_box.h" -#include - #include "lang_auto.h" #include "ayu/utils/rc_manager.h" #include "core/ui_integration.h" #include "data/data_session.h" -#include "data/stickers/data_custom_emoji.h" #include "info/channel_statistics/earn/earn_icons.h" -#include "lang/lang_text_entity.h" - #include "info/profile/info_profile_icon.h" +#include "lang/lang_text_entity.h" #include "main/main_session.h" #include "styles/style_ayu_styles.h" #include "styles/style_boxes.h" @@ -37,6 +33,8 @@ #include "ui/widgets/labels.h" #include "window/window_session_controller.h" +#include + namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ayu/ui/boxes/donate_qr_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/donate_qr_box.cpp index a81ba250f7..64bbfd6cc3 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/donate_qr_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/donate_qr_box.cpp @@ -6,8 +6,10 @@ // Copyright @Radolyn, 2026 #include "ayu/ui/boxes/donate_qr_box.h" +#include "lang_auto.h" #include "qr/qr_generate.h" #include "styles/style_boxes.h" +#include "styles/style_giveaway.h" #include "styles/style_intro.h" #include "styles/style_layers.h" #include "ui/painter.h" @@ -16,16 +18,13 @@ #include "ui/vertical_list.h" #include "ui/controls/invite_link_label.h" #include "ui/layers/generic_box.h" +#include "ui/toast/toast.h" #include "ui/widgets/buttons.h" #include #include #include -#include "lang_auto.h" -#include "styles/style_giveaway.h" -#include "ui/toast/toast.h" - namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ayu/ui/boxes/edit_mark_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/edit_mark_box.cpp index 91732c4ed5..16b12d8f7c 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/edit_mark_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/edit_mark_box.cpp @@ -4,10 +4,9 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "edit_mark_box.h" - -#include +#include "ayu/ui/boxes/edit_mark_box.h" +#include "ayu/ayu_settings.h" #include "boxes/peer_list_controllers.h" #include "lang/lang_keys.h" #include "styles/style_boxes.h" @@ -17,7 +16,7 @@ #include "ui/widgets/fields/input_field.h" #include "ui/widgets/fields/special_fields.h" -#include "ayu/ayu_settings.h" +#include EditMarkBox::EditMarkBox(QWidget *, rpl::producer title, diff --git a/Telegram/SourceFiles/ayu/ui/boxes/font_selector.cpp b/Telegram/SourceFiles/ayu/ui/boxes/font_selector.cpp index baacb9eeb5..f9ca0225da 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/font_selector.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/font_selector.cpp @@ -4,48 +4,40 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "font_selector.h" +#include "ayu/ui/boxes/font_selector.h" +#include "ayu/ayu_settings.h" +#include "ayu/ayu_ui_settings.h" +#include "boxes/premium_preview_box.h" +#include "core/application.h" #include "data/data_peer_values.h" +#include "lang/lang_instance.h" +#include "main/main_session.h" +#include "settings/settings_common.h" +#include "storage/localstorage.h" +#include "styles/style_boxes.h" +#include "styles/style_chat_helpers.h" +#include "styles/style_layers.h" +#include "styles/style_passport.h" +#include "ui/boxes/confirm_box.h" +#include "ui/effects/ripple_animation.h" +#include "ui/painter.h" +#include "ui/text/text_entity.h" +#include "ui/text/text_options.h" +#include "ui/toast/toast.h" +#include "ui/ui_utility.h" +#include "ui/widgets/box_content_divider.h" #include "ui/widgets/checkbox.h" +#include "ui/widgets/dropdown_menu.h" #include "ui/widgets/labels.h" #include "ui/widgets/multi_select.h" #include "ui/widgets/scroll_area.h" -#include "ui/widgets/dropdown_menu.h" -#include "ui/widgets/box_content_divider.h" -#include "ui/text/text_entity.h" -#include "ui/wrap/vertical_layout.h" #include "ui/wrap/slide_wrap.h" -#include "ui/effects/ripple_animation.h" -#include "ui/toast/toast.h" -#include "ui/text/text_options.h" -#include "ui/painter.h" -#include "storage/localstorage.h" -#include "boxes/premium_preview_box.h" -#include "ui/boxes/confirm_box.h" -#include "main/main_session.h" -#include "mainwidget.h" -#include "mainwindow.h" -#include "core/application.h" -#include "lang/lang_instance.h" -#include "lang/lang_cloud_manager.h" -#include "settings/settings_common.h" -#include "spellcheck/spellcheck_types.h" +#include "ui/wrap/vertical_layout.h" #include "window/window_session_controller.h" -#include "styles/style_layers.h" -#include "styles/style_boxes.h" -#include "styles/style_info.h" -#include "styles/style_passport.h" -#include "styles/style_chat_helpers.h" -#include -#include #include - -#include - -#include "ayu/ayu_ui_settings.h" -#include "ui/ui_utility.h" +#include struct Font { diff --git a/Telegram/SourceFiles/ayu/ui/boxes/import_filters_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/import_filters_box.cpp index 1feb3db82b..7283624885 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/import_filters_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/import_filters_box.cpp @@ -6,31 +6,23 @@ // Copyright @Radolyn, 2026 #include "ayu/ui/boxes/import_filters_box.h" -#include "qr/qr_generate.h" -#include "styles/style_boxes.h" -#include "styles/style_intro.h" -#include "styles/style_layers.h" -#include "ui/painter.h" -#include "ui/rect.h" -#include "ui/rp_widget.h" -#include "ui/vertical_list.h" -#include "ui/controls/invite_link_label.h" -#include "ui/layers/generic_box.h" -#include "ui/widgets/buttons.h" -#include "ui/widgets/fields/input_field.h" - -#include -#include -#include - #include "lang_auto.h" #include "ayu/features/filters/filters_utils.h" #include "styles/style_giveaway.h" +#include "styles/style_layers.h" #include "styles/style_settings.h" +#include "ui/rect.h" +#include "ui/rp_widget.h" +#include "ui/layers/generic_box.h" #include "ui/toast/toast.h" +#include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" +#include "ui/widgets/fields/input_field.h" #include "ui/wrap/slide_wrap.h" +#include +#include + namespace Ui { void FillImportFiltersBox(not_null box, bool import) { diff --git a/Telegram/SourceFiles/ayu/ui/boxes/message_shot_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/message_shot_box.cpp index 104ecd7552..601aab975b 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/message_shot_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/message_shot_box.cpp @@ -4,27 +4,27 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "message_shot_box.h" - -#include -#include -#include -#include "styles/style_ayu_styles.h" +#include "ayu/ui/boxes/message_shot_box.h" #include "lang_auto.h" -#include "theme_selector_box.h" #include "ayu/ayu_settings.h" +#include "ayu/ui/boxes/theme_selector_box.h" #include "ayu/ui/components/image_view.h" #include "ayu/utils/telegram_helpers.h" #include "boxes/abstract_box.h" #include "main/main_session.h" #include "settings/settings_common.h" +#include "styles/style_ayu_styles.h" #include "styles/style_layers.h" #include "styles/style_settings.h" #include "ui/vertical_list.h" #include "ui/widgets/buttons.h" #include "ui/wrap/vertical_layout.h" +#include +#include +#include + MessageShotBox::MessageShotBox( QWidget *parent, AyuFeatures::MessageShot::ShotConfig config) diff --git a/Telegram/SourceFiles/ayu/ui/boxes/theme_selector_box.cpp b/Telegram/SourceFiles/ayu/ui/boxes/theme_selector_box.cpp index 6f1e6bed68..e9e8ad07be 100644 --- a/Telegram/SourceFiles/ayu/ui/boxes/theme_selector_box.cpp +++ b/Telegram/SourceFiles/ayu/ui/boxes/theme_selector_box.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "theme_selector_box.h" +#include "ayu/ui/boxes/theme_selector_box.h" #include "lang_auto.h" #include "ayu/features/message_shot/message_shot_theme_state.h" diff --git a/Telegram/SourceFiles/ayu/ui/components/icon_picker.cpp b/Telegram/SourceFiles/ayu/ui/components/icon_picker.cpp index ebd24edc13..bb51d4d1f8 100644 --- a/Telegram/SourceFiles/ayu/ui/components/icon_picker.cpp +++ b/Telegram/SourceFiles/ayu/ui/components/icon_picker.cpp @@ -4,13 +4,12 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "icon_picker.h" +#include "ayu/ui/components/icon_picker.h" + #include "tray.h" #include "ayu/ayu_settings.h" -#include "core/application.h" -#include "styles/style_layers.h" - #include "ayu/ui/ayu_logo.h" +#include "core/application.h" #include "main/main_domain.h" #include "styles/style_ayu_styles.h" #include "ui/painter.h" @@ -20,6 +19,8 @@ #include "ayu/utils/windows_utils.h" #endif +namespace { + const QVector icons{ AyuAssets::DEFAULT_ICON, AyuAssets::ALT_ICON, @@ -34,38 +35,9 @@ const QVector icons{ AyuAssets::CHIBI2_ICON, AyuAssets::EXTERA2_ICON, }; -std::unordered_map cachedIcons; -const auto rows = static_cast(icons.size()) / 4 + std::min(1, static_cast(icons.size()) % 4); - -void drawIcon(QPainter &p, const QImage &icon, int xOffset, int yOffset, float strokeOpacity) { - xOffset += st::cpPadding; - - { - PainterHighQualityEnabler hq(p); - p.save(); - p.setPen(QPen(st::boxDividerBg, 0)); - p.setBrush(QBrush(st::boxDividerBg)); - p.setOpacity(strokeOpacity); - p.drawRoundedRect( - xOffset + st::cpSelectedPadding, - yOffset + st::cpSelectedPadding, - st::cpIconSize + st::cpSelectedPadding * 2, - st::cpIconSize + st::cpSelectedPadding * 2, - st::cpSelectedRounding, - st::cpSelectedRounding - ); - p.restore(); - } - - const auto rect = QRect( - xOffset + st::cpImagePadding, - yOffset + st::cpImagePadding, - st::cpIconSize, - st::cpIconSize - ); - p.drawImage(rect, icon); -} +const auto rows = static_cast(icons.size()) / IconPicker::kColumns + + std::min(1, static_cast(icons.size()) % IconPicker::kColumns); void applyIcon() { #ifdef Q_OS_WIN @@ -79,49 +51,81 @@ void applyIcon() { Core::App().domain().notifyUnreadBadgeChanged(); } +} // namespace + IconPicker::IconPicker(QWidget *parent) : RpWidget(parent) { - setMinimumSize(st::boxWidth, (st::cpIconSize + st::cpPadding) * rows - st::cpPadding); + widthValue() | rpl::on_next([=](int w) { + const auto cell = w / kColumns; + const auto iconSize = st::iconPickerIconSize; + const auto h = rows * cell - (cell - iconSize); + resize(w, h); + }, lifetime()); } -IconPicker::~IconPicker() { - cachedIcons.clear(); +void IconPicker::drawIcon(QPainter &p, const QImage &icon, int x, int y, float strokeOpacity) { + { + PainterHighQualityEnabler hq(p); + p.save(); + p.setPen(QPen(st::boxDividerBg, 0)); + p.setBrush(QBrush(st::boxDividerBg)); + p.setOpacity(strokeOpacity); + p.drawRoundedRect( + x + st::iconPickerSelectedPadding, + y + st::iconPickerSelectedPadding, + st::iconPickerIconSize + st::iconPickerSelectedPadding * 2, + st::iconPickerIconSize + st::iconPickerSelectedPadding * 2, + st::iconPickerSelectedRounding, + st::iconPickerSelectedRounding + ); + p.restore(); + } + + const auto rect = QRect( + x + st::iconPickerImagePadding, + y + st::iconPickerImagePadding, + st::iconPickerIconSize, + st::iconPickerIconSize + ); + p.drawImage(rect, icon); +} + +int IconPicker::cellWidth() const { + return width() / kColumns; } void IconPicker::paintEvent(QPaintEvent *e) { Painter p(this); - auto offset = st::boxWidth / 2 - (st::cpIconSize + st::cpSpacingX) * 2; + const auto cell = cellWidth(); + const auto iconSize = st::iconPickerIconSize; for (int row = 0; row < rows; row++) { - const auto columns = std::min(4, static_cast(icons.size()) - row * 4); + const auto columns = std::min(kColumns, static_cast(icons.size()) - row * kColumns); for (int i = 0; i < columns; i++) { - auto const idx = i + row * 4; + auto const idx = i + row * kColumns; const auto &iconName = icons[idx]; if (iconName.isEmpty()) { continue; } QImage icon; - if (const auto cached = cachedIcons.find(iconName); cached != cachedIcons.end()) { + if (const auto cached = _cachedIcons.find(iconName); cached != _cachedIcons.end()) { icon = cached->second; } else { - icon = cachedIcons[iconName] = AyuAssets::loadPreview(iconName); + icon = _cachedIcons[iconName] = AyuAssets::loadPreview(iconName); } auto opacity = 0.0f; - if (iconName == wasSelected) { - opacity = 1.0f - animation.value(1.0f); + if (iconName == _wasSelected) { + opacity = 1.0f - _animation.value(1.0f); } else if (iconName == AyuAssets::currentAppLogoName()) { - opacity = wasSelected.isEmpty() ? 1.0f : animation.value(1.0f); + opacity = _wasSelected.isEmpty() ? 1.0f : _animation.value(1.0f); } - drawIcon( - p, - icon, - (st::cpIconSize + st::cpSpacingX) * i + offset, - row * (st::cpIconSize + st::cpSpacingY), - opacity - ); + const auto x = i * cell + (cell - iconSize) / 2; + const auto y = row * cell; + + drawIcon(p, icon, x, y, opacity); } } } @@ -130,24 +134,27 @@ void IconPicker::mousePressEvent(QMouseEvent *e) { const auto &settings = AyuSettings::getInstance(); auto changed = false; - auto x = e->pos().x(); - for (int row = 0; row < rows; row++) { - const auto columns = std::min(4, static_cast(icons.size()) - row * 4); - for (int i = 0; i < columns; i++) { - auto const idx = i + row * 4; - auto const xOffset = (st::cpIconSize + st::cpSpacingX) * i + st::cpPadding; - auto const yOffset = row * (st::cpIconSize + st::cpSpacingY); + const auto cell = cellWidth(); + const auto iconSize = st::iconPickerIconSize; - if (x >= xOffset && x <= xOffset + st::cpIconSize && e->pos().y() >= yOffset - && e->pos().y() <= yOffset + st::cpIconSize) { + for (int row = 0; row < rows; row++) { + const auto columns = std::min(kColumns, static_cast(icons.size()) - row * kColumns); + for (int i = 0; i < columns; i++) { + auto const idx = i + row * kColumns; + + const auto x = i * cell + (cell - iconSize) / 2; + const auto y = row * cell; + + if (e->pos().x() >= x && e->pos().x() <= x + iconSize + && e->pos().y() >= y && e->pos().y() <= y + iconSize) { const auto &iconName = icons[idx]; if (iconName.isEmpty()) { break; } if (settings.appIcon() != iconName) { - wasSelected = settings.appIcon(); - animation.start( + _wasSelected = settings.appIcon(); + _animation.start( [=] { update(); diff --git a/Telegram/SourceFiles/ayu/ui/components/icon_picker.h b/Telegram/SourceFiles/ayu/ui/components/icon_picker.h index 5a7c60fba6..e34483a20d 100644 --- a/Telegram/SourceFiles/ayu/ui/components/icon_picker.h +++ b/Telegram/SourceFiles/ayu/ui/components/icon_picker.h @@ -13,12 +13,19 @@ class IconPicker : public Ui::RpWidget { public: IconPicker(QWidget *parent); - ~IconPicker(); + ~IconPicker() = default; + + static constexpr int kColumns = 4; protected: void paintEvent(QPaintEvent *e) override; void mousePressEvent(QMouseEvent *e) override; - Ui::Animations::Simple animation; - QString wasSelected; +private: + void drawIcon(QPainter &p, const QImage &icon, int x, int y, float strokeOpacity); + [[nodiscard]] int cellWidth() const; + + Ui::Animations::Simple _animation; + QString _wasSelected; + std::unordered_map _cachedIcons; }; diff --git a/Telegram/SourceFiles/ayu/ui/components/image_view.cpp b/Telegram/SourceFiles/ayu/ui/components/image_view.cpp index dbe083b7a3..57df44b28b 100644 --- a/Telegram/SourceFiles/ayu/ui/components/image_view.cpp +++ b/Telegram/SourceFiles/ayu/ui/components/image_view.cpp @@ -4,12 +4,11 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "image_view.h" +#include "ayu/ui/components/image_view.h" #include "ayu/features/message_shot/message_shot.h" -#include "styles/style_ayu_styles.h" - #include "ayu/utils/telegram_helpers.h" +#include "styles/style_ayu_styles.h" #include "styles/style_chat.h" #include "ui/painter.h" diff --git a/Telegram/SourceFiles/ayu/ui/components/saved_music.cpp b/Telegram/SourceFiles/ayu/ui/components/saved_music.cpp index b8d1677ad3..b9a13d1523 100644 --- a/Telegram/SourceFiles/ayu/ui/components/saved_music.cpp +++ b/Telegram/SourceFiles/ayu/ui/components/saved_music.cpp @@ -4,11 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "saved_music.h" - -#include "info/profile/info_profile_music_button.h" - -#include +#include "ayu/ui/components/saved_music.h" #include "ayu/ayu_settings.h" #include "ayu/ui/utils/color_utils.h" @@ -18,6 +14,7 @@ #include "data/data_document_media.h" #include "data/data_file_origin.h" #include "data/data_session.h" +#include "info/profile/info_profile_music_button.h" #include "main/main_session.h" #include "main/main_session_settings.h" #include "styles/palette.h" @@ -28,6 +25,8 @@ #include "ui/widgets/labels.h" #include "window/themes/window_theme.h" +#include + namespace Info::Profile { namespace { diff --git a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp index def66909c7..0006f6264f 100644 --- a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp +++ b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp @@ -14,24 +14,14 @@ #include "ayu/data/messages_storage.h" #include "ayu/features/forward/ayu_forward.h" #include "ayu/ui/context_menu/menu_item_subtext.h" -#include "ayu/utils/qt_key_modifiers_extended.h" -#include "history/history_item_components.h" -#include "main/session/send_as_peers.h" - -#include "core/mime_type.h" -#include "styles/style_ayu_icons.h" -#include "styles/style_layers.h" -#include "styles/style_menu_icons.h" -#include "ui/widgets/popup_menu.h" -#include "ui/widgets/menu/menu_add_action_callback_factory.h" -#include "window/window_peer_menu.h" - #include "ayu/ui/message_history/history_section.h" #include "ayu/ui/settings/filters/edit_filter.h" +#include "ayu/utils/qt_key_modifiers_extended.h" #include "ayu/utils/telegram_helpers.h" #include "base/call_delayed.h" #include "base/random.h" #include "base/unixtime.h" +#include "core/mime_type.h" #include "data/data_channel.h" #include "data/data_chat.h" #include "data/data_forum_topic.h" @@ -39,10 +29,18 @@ #include "data/data_search_controller.h" #include "data/data_session.h" #include "data/data_user.h" +#include "history/history_item_components.h" #include "history/view/history_view_context_menu.h" #include "history/view/history_view_element.h" +#include "main/session/send_as_peers.h" +#include "styles/style_ayu_icons.h" +#include "styles/style_layers.h" +#include "styles/style_menu_icons.h" #include "ui/boxes/confirm_box.h" +#include "ui/widgets/popup_menu.h" +#include "ui/widgets/menu/menu_add_action_callback_factory.h" #include "window/window_controller.h" +#include "window/window_peer_menu.h" #include "window/window_session_controller.h" namespace AyuUi { diff --git a/Telegram/SourceFiles/ayu/ui/context_menu/menu_item_subtext.cpp b/Telegram/SourceFiles/ayu/ui/context_menu/menu_item_subtext.cpp index 52a8e2ed60..b7f7192672 100644 --- a/Telegram/SourceFiles/ayu/ui/context_menu/menu_item_subtext.cpp +++ b/Telegram/SourceFiles/ayu/ui/context_menu/menu_item_subtext.cpp @@ -4,15 +4,12 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include - #include "ayu/ui/context_menu/menu_item_subtext.h" #include "mainwindow.h" #include "qguiapplication.h" #include "ayu/data/entities.h" #include "ayu/utils/telegram_helpers.h" - #include "base/unixtime.h" #include "data/data_user.h" #include "lang/lang_keys.h" @@ -23,6 +20,8 @@ #include "ui/widgets/menu/menu_action.h" #include "window/window_session_controller.h" +#include + namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ayu/ui/message_history/history_item.cpp b/Telegram/SourceFiles/ayu/ui/message_history/history_item.cpp index 7239af9827..e358b21197 100644 --- a/Telegram/SourceFiles/ayu/ui/message_history/history_item.cpp +++ b/Telegram/SourceFiles/ayu/ui/message_history/history_item.cpp @@ -5,12 +5,12 @@ // // Copyright @Radolyn, 2026 #include "ayu/ui/message_history/history_item.h" -#include "ayu/data/entities.h" -#include "api/api_chat_participants.h" +#include "history/history_item.h" #include "api/api_text_entities.h" -#include "ayu/utils/ayu_mapper.h" +#include "ayu/data/entities.h" #include "ayu/ui/message_history/history_inner.h" +#include "ayu/utils/ayu_mapper.h" #include "base/unixtime.h" #include "core/application.h" #include "core/click_handler_types.h" @@ -20,11 +20,7 @@ #include "data/data_session.h" #include "data/data_user.h" #include "history/history.h" -#include "history/history_item.h" -#include "history/history_item_helpers.h" #include "history/view/history_view_element.h" -#include "lang/lang_keys.h" -#include "main/main_session.h" #include "ui/basic_click_handlers.h" #include "ui/text/text_utilities.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/filters/edit_filter.cpp b/Telegram/SourceFiles/ayu/ui/settings/filters/edit_filter.cpp index c9afec6c4f..e5a8cd7714 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/filters/edit_filter.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/filters/edit_filter.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "edit_filter.h" +#include "ayu/ui/settings/filters/edit_filter.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" @@ -23,9 +23,7 @@ #include "styles/style_window.h" #include "ui/ui_utility.h" #include "ui/boxes/confirm_box.h" -#include "ui/effects/animations.h" #include "ui/text/text.h" -#include "ui/text/text_utilities.h" #include "ui/toast/toast.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/labels.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/filters/per_dialog_filter.cpp b/Telegram/SourceFiles/ayu/ui/settings/filters/per_dialog_filter.cpp index 4bf5de3219..13343249bc 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/filters/per_dialog_filter.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/filters/per_dialog_filter.cpp @@ -4,14 +4,12 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "per_dialog_filter.h" - -#include +#include "ayu/ui/settings/filters/per_dialog_filter.h" #include "lang_auto.h" -#include "settings_filters_list.h" #include "ayu/ayu_settings.h" #include "ayu/data/ayu_database.h" +#include "ayu/ui/settings/filters/settings_filters_list.h" #include "ayu/utils/telegram_helpers.h" #include "data/data_peer.h" #include "data/data_session.h" @@ -20,6 +18,8 @@ #include "ui/painter.h" #include "window/window_session_controller.h" +#include + namespace Settings { PerDialogFiltersListRow::PerDialogFiltersListRow(PeerId peer) diff --git a/Telegram/SourceFiles/ayu/ui/settings/filters/settings_filters_list.cpp b/Telegram/SourceFiles/ayu/ui/settings/filters/settings_filters_list.cpp index e70e9d1233..8c92c3450f 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/filters/settings_filters_list.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/filters/settings_filters_list.cpp @@ -4,17 +4,17 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_filters_list.h" +#include "ayu/ui/settings/filters/settings_filters_list.h" -#include "edit_filter.h" #include "lang_auto.h" -#include "per_dialog_filter.h" #include "ayu/ayu_settings.h" #include "ayu/data/ayu_database.h" -#include "ayu/ui/settings/settings_ayu_utils.h" #include "ayu/features/filters/filters_cache_controller.h" #include "ayu/features/filters/filters_utils.h" #include "ayu/ui/components/icon_picker.h" +#include "ayu/ui/settings/settings_ayu_utils.h" +#include "ayu/ui/settings/filters/edit_filter.h" +#include "ayu/ui/settings/filters/per_dialog_filter.h" #include "ayu/utils/telegram_helpers.h" #include "boxes/connection_box.h" #include "data/data_channel.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_appearance.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_appearance.cpp index ed6ff7ac6f..2e3a62dc55 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_appearance.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_appearance.cpp @@ -4,12 +4,11 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_appearance.h" +#include "ayu/ui/settings/settings_appearance.h" -#include "lang_auto.h" #include "apiwrap.h" +#include "lang_auto.h" #include "ayu/ayu_settings.h" -#include "ayu/ayu_ui_settings.h" #include "ayu/ui/ayu_userpic.h" #include "ayu/ui/boxes/font_selector.h" #include "ayu/ui/components/icon_picker.h" @@ -29,12 +28,11 @@ #include "styles/style_layers.h" #include "styles/style_menu_icons.h" #include "styles/style_settings.h" -#include "ui/boxes/confirm_box.h" -#include "ui/effects/ripple_animation.h" #include "ui/empty_userpic.h" #include "ui/painter.h" #include "ui/userpic_view.h" -#include "ui/widgets/buttons.h" +#include "ui/boxes/confirm_box.h" +#include "ui/effects/ripple_animation.h" #include "ui/widgets/labels.h" #include "ui/wrap/padding_wrap.h" #include "ui/wrap/vertical_layout.h" @@ -70,7 +68,7 @@ void BuildAppIcon(SectionBuilder &builder, AyuSectionBuilder &ayu) { builder.add([](const WidgetContext &ctx) -> SectionBuilder::WidgetToAdd { return { .widget = object_ptr(ctx.container), - .margin = st::settingsCheckboxPadding, + .margin = st::settingsButtonNoIcon.padding, }; }, [] { return SearchEntry{ @@ -79,6 +77,7 @@ void BuildAppIcon(SectionBuilder &builder, AyuSectionBuilder &ayu) { .keywords = { u"icon"_q, u"app"_q, u"logo"_q }, }; }); + builder.addSkip(); #ifdef Q_OS_WIN builder.addDivider(); @@ -230,9 +229,9 @@ void BuildAvatarCorners(SectionBuilder &builder, AyuSectionBuilder &ayu) { const auto mapRadius = [](int val) { if (val == 0) { - return tr::ayu_AvatarCornersSquare(tr::now); + return tr::ayu_AvatarCornersSquare(tr::now).toUpper(); } else if (val == AyuUserpic::kMaxAvatarCorners) { - return tr::ayu_AvatarCornersCircle(tr::now); + return tr::ayu_AvatarCornersCircle(tr::now).toUpper(); } return QString::number(val); }; diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp index 53da770ed3..bd380fbf53 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp @@ -4,13 +4,13 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_ayu.h" +#include "ayu/ui/settings/settings_ayu.h" #include "lang_auto.h" -#include "settings_ayu_utils.h" #include "ayu/ayu_settings.h" #include "ayu/ui/ayu_userpic.h" #include "ayu/ui/settings/ayu_builder.h" +#include "ayu/ui/settings/settings_ayu_utils.h" #include "ayu/ui/settings/settings_main.h" #include "boxes/peer_list_box.h" #include "core/application.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu_utils.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu_utils.cpp index 260a20bf5e..7084c884f9 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu_utils.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu_utils.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_ayu_utils.h" +#include "ayu/ui/settings/settings_ayu_utils.h" #include "lang/lang_text_entity.h" #include "settings/settings_common.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_chats.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_chats.cpp index 3fdbe218ff..2480774a50 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_chats.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_chats.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_chats.h" +#include "ayu/ui/settings/settings_chats.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_filters.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_filters.cpp index fc8f76038f..8de681dfe9 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_filters.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_filters.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_filters.h" +#include "ayu/ui/settings/settings_filters.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_general.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_general.cpp index 3fd7d35533..08b6c1651d 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_general.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_general.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_general.h" +#include "ayu/ui/settings/settings_general.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_main.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_main.cpp index 4a2fa2cb6d..ea58a1b92f 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_main.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_main.cpp @@ -4,20 +4,18 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_main.h" - -#include +#include "ayu/ui/settings/settings_main.h" #include "settings/sections/settings_main.h" #include "lang_auto.h" -#include "settings_appearance.h" -#include "settings_ayu.h" -#include "settings_chats.h" -#include "settings_filters.h" -#include "settings_general.h" -#include "settings_other.h" #include "ayu/ayu_settings.h" #include "ayu/ui/ayu_logo.h" +#include "ayu/ui/settings/settings_appearance.h" +#include "ayu/ui/settings/settings_ayu.h" +#include "ayu/ui/settings/settings_chats.h" +#include "ayu/ui/settings/settings_filters.h" +#include "ayu/ui/settings/settings_general.h" +#include "ayu/ui/settings/settings_other.h" #include "core/version.h" #include "settings/settings_builder.h" #include "settings/settings_common.h" @@ -32,6 +30,8 @@ #include "window/window_session_controller.h" #include "window/window_session_controller_link_info.h" +#include + namespace Settings { using namespace Builder; diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_other.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_other.cpp index 78bd942528..d8c734bba3 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_other.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_other.cpp @@ -4,11 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "settings_other.h" - -#include -#include -#include +#include "ayu/ui/settings/settings_other.h" #include "lang_auto.h" #include "ayu/ayu_settings.h" @@ -19,7 +15,6 @@ #include "boxes/abstract_box.h" #include "core/application.h" #include "lang/lang_text_entity.h" -#include "main/main_session.h" #include "settings/settings_builder.h" #include "settings/settings_common.h" #include "styles/style_menu_icons.h" @@ -35,6 +30,10 @@ #include "window/window_session_controller.h" #include "window/themes/window_theme.h" +#include +#include +#include + namespace Settings { using namespace Builder; diff --git a/Telegram/SourceFiles/ayu/ui/utils/ayu_profile_values.cpp b/Telegram/SourceFiles/ayu/ui/utils/ayu_profile_values.cpp index ddc83eea7e..37a792f4d4 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/ayu_profile_values.cpp +++ b/Telegram/SourceFiles/ayu/ui/utils/ayu_profile_values.cpp @@ -4,12 +4,12 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_profile_values.h" +#include "ayu/ui/utils/ayu_profile_values.h" + #include "ayu/ayu_settings.h" #include "ayu/utils/telegram_helpers.h" #include "data/data_peer.h" #include "lang/lang_text_entity.h" -#include "ui/text/text_utilities.h" constexpr auto kMaxChannelId = -1000000000000; diff --git a/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.cpp b/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.cpp index 9110116908..7f69f51ab1 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.cpp +++ b/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.cpp @@ -6,7 +6,8 @@ // Copyright @Radolyn, 2026 // // Code is based on https://github.com/androidx/androidx/blob/androidx-main/palette/palette/src/main/java/androidx/palette/graphics/ColorCutQuantizer.java -#include "color_cut_quantizer.h" +#include "ayu/ui/utils/color_cut_quantizer.h" + #include "color_utils.h" #include diff --git a/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.h b/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.h index be867c6c63..6500961f45 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.h +++ b/Telegram/SourceFiles/ayu/ui/utils/color_cut_quantizer.h @@ -6,10 +6,11 @@ // Copyright @Radolyn, 2026 #pragma once -#include "palette.h" -#include -#include +#include "ayu/ui/utils/palette.h" + #include +#include +#include namespace Ayu::Ui { diff --git a/Telegram/SourceFiles/ayu/ui/utils/color_utils.cpp b/Telegram/SourceFiles/ayu/ui/utils/color_utils.cpp index eaa7440b13..fc66f9175f 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/color_utils.cpp +++ b/Telegram/SourceFiles/ayu/ui/utils/color_utils.cpp @@ -6,11 +6,11 @@ // Copyright @Radolyn, 2026 // // Code is based on https://github.com/androidx/androidx -#include "color_utils.h" +#include "ayu/ui/utils/color_utils.h" -#include -#include #include +#include +#include namespace Ayu::Ui { diff --git a/Telegram/SourceFiles/ayu/ui/utils/itunes_search.cpp b/Telegram/SourceFiles/ayu/ui/utils/itunes_search.cpp index 2c2cda945c..ae3e19f088 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/itunes_search.cpp +++ b/Telegram/SourceFiles/ayu/ui/utils/itunes_search.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "itunes_search.h" +#include "ayu/ui/utils/itunes_search.h" #include #include diff --git a/Telegram/SourceFiles/ayu/ui/utils/palette.cpp b/Telegram/SourceFiles/ayu/ui/utils/palette.cpp index 94f715a2c6..c9a734f730 100644 --- a/Telegram/SourceFiles/ayu/ui/utils/palette.cpp +++ b/Telegram/SourceFiles/ayu/ui/utils/palette.cpp @@ -8,13 +8,14 @@ // Code is based on: // - https://github.com/androidx/androidx/blob/androidx-main/palette/palette/src/main/java/androidx/palette/graphics/Palette.java // - https://github.com/androidx/androidx/blob/androidx-main/palette/palette/src/main/java/androidx/palette/graphics/Target.java -#include "palette.h" -#include "color_utils.h" -#include "color_cut_quantizer.h" +#include "ayu/ui/utils/palette.h" + +#include "color_cut_quantizer.h" +#include "color_utils.h" -#include #include #include +#include namespace Ayu::Ui { diff --git a/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp b/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp index 4525b2a933..a58f875e99 100644 --- a/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp +++ b/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp @@ -4,14 +4,13 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "ayu_mapper.h" +#include "ayu/utils/ayu_mapper.h" #include "apiwrap.h" #include "api/api_text_entities.h" #include "history/history.h" #include "history/history_item.h" #include "history/history_item_components.h" -#include "main/main_session.h" #include "mtproto/connection_abstract.h" #include "mtproto/details/mtproto_dump_to_text.h" diff --git a/Telegram/SourceFiles/ayu/utils/rc_manager.cpp b/Telegram/SourceFiles/ayu/utils/rc_manager.cpp index 86e04767e8..bbfa57ca1a 100644 --- a/Telegram/SourceFiles/ayu/utils/rc_manager.cpp +++ b/Telegram/SourceFiles/ayu/utils/rc_manager.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "rc_manager.h" +#include "ayu/utils/rc_manager.h" #include #include diff --git a/Telegram/SourceFiles/ayu/utils/rc_manager.h b/Telegram/SourceFiles/ayu/utils/rc_manager.h index 13864b1aee..1e590748d6 100644 --- a/Telegram/SourceFiles/ayu/utils/rc_manager.h +++ b/Telegram/SourceFiles/ayu/utils/rc_manager.h @@ -6,10 +6,10 @@ // Copyright @Radolyn, 2026 #pragma once -#include - #include "ayu/data/entities.h" +#include + extern std::unordered_set default_developers; extern std::unordered_set default_channels; diff --git a/Telegram/SourceFiles/ayu/utils/taptic_engine/platform/taptic_engine_dummy.cpp b/Telegram/SourceFiles/ayu/utils/taptic_engine/platform/taptic_engine_dummy.cpp index 926a924df2..10bf1e07a6 100644 --- a/Telegram/SourceFiles/ayu/utils/taptic_engine/platform/taptic_engine_dummy.cpp +++ b/Telegram/SourceFiles/ayu/utils/taptic_engine/platform/taptic_engine_dummy.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "taptic_engine_dummy.h" +#include "ayu/utils/taptic_engine/platform/taptic_engine_dummy.h" #ifndef Q_OS_MAC diff --git a/Telegram/SourceFiles/ayu/utils/taptic_engine/taptic_engine.cpp b/Telegram/SourceFiles/ayu/utils/taptic_engine/taptic_engine.cpp index f1a19c51c3..cfa2b04862 100644 --- a/Telegram/SourceFiles/ayu/utils/taptic_engine/taptic_engine.cpp +++ b/Telegram/SourceFiles/ayu/utils/taptic_engine/taptic_engine.cpp @@ -4,7 +4,7 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "taptic_engine.h" +#include "ayu/utils/taptic_engine/taptic_engine.h" #if defined Q_OS_MAC #include "ayu/utils/taptic_engine/platform/taptic_engine_mac.h" diff --git a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp index e42b08beaf..0ba5435184 100644 --- a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp +++ b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp @@ -4,58 +4,53 @@ // but be respectful and credit the original author. // // Copyright @Radolyn, 2026 -#include "telegram_helpers.h" - -#include -#include -#include - -#include -#include +#include "ayu/utils/telegram_helpers.h" #include "apiwrap.h" - #include "lang_auto.h" -#include "rc_manager.h" +#include "api/api_common.h" +#include "ayu/ayu_settings.h" +#include "ayu/ayu_state.h" #include "ayu/ayu_worker.h" #include "ayu/data/entities.h" +#include "ayu/data/messages_storage.h" +#include "ayu/features/filters/filters_controller.h" +#include "ayu/utils/rc_manager.h" +#include "base/unixtime.h" #include "core/mime_type.h" #include "data/data_channel.h" +#include "data/data_chat.h" +#include "data/data_document.h" #include "data/data_forum.h" #include "data/data_forum_topic.h" #include "data/data_histories.h" #include "data/data_peer_id.h" #include "data/data_photo.h" -#include "data/data_user.h" - -#include "data/data_document.h" +#include "data/data_poll.h" +#include "data/data_saved_sublist.h" #include "data/data_session.h" +#include "data/data_user.h" +#include "data/stickers/data_custom_emoji.h" +#include "data/stickers/data_stickers.h" #include "history/history.h" #include "history/history_item.h" #include "history/history_item_components.h" #include "history/history_unread_things.h" -#include "main/main_account.h" -#include "main/main_session.h" -#include "ui/text/format_values.h" - -#include "api/api_common.h" -#include "ayu/ayu_settings.h" -#include "ayu/ayu_state.h" -#include "ayu/data/messages_storage.h" -#include "ayu/features/filters/filters_controller.h" -#include "base/unixtime.h" -#include "data/data_chat.h" -#include "data/data_poll.h" -#include "data/data_saved_sublist.h" -#include "data/stickers/data_custom_emoji.h" -#include "data/stickers/data_stickers.h" #include "lang/lang_keys.h" +#include "main/main_account.h" #include "main/main_domain.h" +#include "main/main_session.h" #include "styles/style_ayu_styles.h" -#include "ui/text/text_utilities.h" +#include "ui/emoji_config.h" +#include "ui/text/format_values.h" #include "ui/text/text_entity.h" #include "ui/toast/toast.h" -#include "ui/emoji_config.h" + +#include +#include +#include +#include +#include namespace { diff --git a/Telegram/SourceFiles/ayu/utils/telegram_helpers.h b/Telegram/SourceFiles/ayu/utils/telegram_helpers.h index e615a1f9de..e4ea7864a1 100644 --- a/Telegram/SourceFiles/ayu/utils/telegram_helpers.h +++ b/Telegram/SourceFiles/ayu/utils/telegram_helpers.h @@ -6,10 +6,9 @@ // Copyright @Radolyn, 2026 #pragma once -#include "rc_manager.h" #include "api/api_common.h" #include "ayu/data/entities.h" - +#include "ayu/utils/rc_manager.h" #include "core/application.h" #include "data/data_media_types.h" #include "dialogs/dialogs_main_list.h" diff --git a/Telegram/SourceFiles/ayu/utils/windows_utils.cpp b/Telegram/SourceFiles/ayu/utils/windows_utils.cpp index 0f5749ce1d..21c5e69c16 100644 --- a/Telegram/SourceFiles/ayu/utils/windows_utils.cpp +++ b/Telegram/SourceFiles/ayu/utils/windows_utils.cpp @@ -6,13 +6,14 @@ // Copyright @Radolyn, 2026 #ifdef Q_OS_WIN -#include "windows_utils.h" +#include "ayu/utils/windows_utils.h" +#include "ayu/ui/ayu_logo.h" #include "base/platform/win/base_windows_winrt.h" #include "platform/win/windows_app_user_model_id.h" -#include #include +#include void processIcon(QString shortcut, QString iconPath) { if (!QFile::exists(shortcut)) { @@ -46,7 +47,8 @@ void processIcon(QString shortcut, QString iconPath) { } } -void processLegacy(const QString &appdata, const QString &iconPath) { +void processLegacy(const QString &iconPath) { + const auto appdata = QDir::fromNativeSeparators(qgetenv("APPDATA")); auto shortcut = appdata + "/Microsoft/Internet Explorer/Quick Launch/User Pinned/TaskBar/AyuGram Desktop.lnk"; if (!QFile::exists(shortcut)) { shortcut = appdata + "/Microsoft/Internet Explorer/Quick Launch/User Pinned/TaskBar/AyuGram.lnk"; @@ -152,12 +154,11 @@ void processNewShortcuts(const QString &iconPath) { } void reloadAppIconFromTaskBar() { - QString appdata = QDir::fromNativeSeparators(qgetenv("APPDATA")); - QString iconPath = appdata + "/AyuGram.ico"; + const auto iconPath = AyuAssets::appIcoPath(); processNewPinned(iconPath); processNewShortcuts(iconPath); - processLegacy(appdata, iconPath); + processLegacy(iconPath); SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL); }