From 0c713a930a40900c979205d60521532a2e67377d Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 13 Sep 2019 09:06:02 +0300 Subject: [PATCH] Remove app.h / facades.h from precompiled header. --- Telegram/SourceFiles/api/api_common.h | 2 + Telegram/SourceFiles/api/api_sending.cpp | 7 +- Telegram/SourceFiles/apiwrap.cpp | 10 +- Telegram/SourceFiles/app.cpp | 17 - Telegram/SourceFiles/app.h | 13 +- Telegram/SourceFiles/boxes/abstract_box.cpp | 37 ++ Telegram/SourceFiles/boxes/abstract_box.h | 29 ++ .../SourceFiles/boxes/add_contact_box.cpp | 1 + Telegram/SourceFiles/boxes/add_contact_box.h | 2 + Telegram/SourceFiles/boxes/auto_lock_box.cpp | 1 + Telegram/SourceFiles/boxes/background_box.cpp | 1 + .../boxes/background_preview_box.cpp | 1 + .../SourceFiles/boxes/change_phone_box.cpp | 1 + Telegram/SourceFiles/boxes/confirm_box.cpp | 6 +- .../SourceFiles/boxes/confirm_phone_box.cpp | 1 + Telegram/SourceFiles/boxes/connection_box.cpp | 1 + .../SourceFiles/boxes/create_poll_box.cpp | 1 + .../SourceFiles/boxes/download_path_box.cpp | 1 + .../SourceFiles/boxes/edit_caption_box.cpp | 2 + Telegram/SourceFiles/boxes/edit_caption_box.h | 2 +- Telegram/SourceFiles/boxes/edit_color_box.cpp | 7 +- .../SourceFiles/boxes/mute_settings_box.cpp | 5 +- Telegram/SourceFiles/boxes/passcode_box.cpp | 1 + .../boxes/peer_list_controllers.cpp | 3 +- .../SourceFiles/boxes/peer_list_controllers.h | 2 + .../boxes/peers/add_participants_box.cpp | 4 +- .../boxes/peers/edit_contact_box.cpp | 1 + .../boxes/peers/edit_linked_chat_box.cpp | 1 + .../boxes/peers/edit_participant_box.cpp | 3 +- .../boxes/peers/edit_participants_box.cpp | 5 +- .../boxes/peers/edit_peer_info_box.cpp | 4 +- .../boxes/peers/edit_peer_permissions_box.cpp | 1 + Telegram/SourceFiles/boxes/photo_crop_box.cpp | 1 + Telegram/SourceFiles/boxes/send_files_box.cpp | 2 + Telegram/SourceFiles/boxes/share_box.cpp | 6 +- Telegram/SourceFiles/boxes/share_box.h | 2 +- .../SourceFiles/boxes/sticker_set_box.cpp | 1 + Telegram/SourceFiles/boxes/stickers_box.cpp | 2 + Telegram/SourceFiles/boxes/url_auth_box.cpp | 3 +- .../calls/calls_box_controller.cpp | 2 + Telegram/SourceFiles/calls/calls_call.cpp | 9 +- Telegram/SourceFiles/calls/calls_instance.cpp | 4 +- Telegram/SourceFiles/calls/calls_panel.cpp | 7 +- Telegram/SourceFiles/calls/calls_top_bar.cpp | 9 +- .../SourceFiles/chat_helpers/bot_keyboard.cpp | 2 + .../chat_helpers/emoji_list_widget.cpp | 1 + .../chat_helpers/emoji_sets_manager.cpp | 1 + .../chat_helpers/emoji_suggestions_widget.cpp | 1 + .../chat_helpers/field_autocomplete.cpp | 2 + .../chat_helpers/gifs_list_widget.cpp | 2 + .../chat_helpers/gifs_list_widget.h | 3 + .../SourceFiles/chat_helpers/stickers.cpp | 2 + .../chat_helpers/stickers_emoji_pack.cpp | 2 + .../chat_helpers/stickers_list_widget.cpp | 1 + .../SourceFiles/chat_helpers/tabbed_panel.cpp | 1 + Telegram/SourceFiles/core/application.cpp | 2 + .../SourceFiles/core/click_handler_types.cpp | 6 +- .../SourceFiles/core/crash_report_window.cpp | 2 + .../SourceFiles/core/local_url_handlers.cpp | 1 + .../SourceFiles/core/main_queue_processor.cpp | 1 + Telegram/SourceFiles/core/sandbox.cpp | 2 + Telegram/SourceFiles/core/shortcuts.cpp | 1 + Telegram/SourceFiles/core/update_checker.cpp | 1 + .../SourceFiles/data/data_cloud_themes.cpp | 1 + Telegram/SourceFiles/data/data_document.cpp | 2 + Telegram/SourceFiles/data/data_document.h | 1 + .../data/data_document_good_thumbnail.cpp | 1 + .../data/data_document_good_thumbnail.h | 1 + Telegram/SourceFiles/data/data_folder.cpp | 1 + .../SourceFiles/data/data_media_types.cpp | 1 + Telegram/SourceFiles/data/data_peer.cpp | 2 + Telegram/SourceFiles/data/data_photo.cpp | 2 + Telegram/SourceFiles/data/data_pts_waiter.cpp | 1 + Telegram/SourceFiles/data/data_session.cpp | 2 + Telegram/SourceFiles/data/data_shared_media.h | 2 + Telegram/SourceFiles/data/data_user.cpp | 1 + .../SourceFiles/dialogs/dialogs_entry.cpp | 1 + .../dialogs/dialogs_inner_widget.cpp | 8 +- .../dialogs/dialogs_inner_widget.h | 1 + .../SourceFiles/dialogs/dialogs_layout.cpp | 1 + Telegram/SourceFiles/dialogs/dialogs_row.cpp | 2 +- .../SourceFiles/dialogs/dialogs_widget.cpp | 2 + Telegram/SourceFiles/dialogs/dialogs_widget.h | 1 + .../view/export_view_panel_controller.cpp | 1 + .../export/view/export_view_settings.h | 2 + Telegram/SourceFiles/facades.cpp | 32 -- Telegram/SourceFiles/facades.h | 34 +- .../admin_log/history_admin_log_inner.cpp | 2 + .../admin_log/history_admin_log_item.cpp | 5 +- .../admin_log/history_admin_log_item.h | 2 + .../admin_log/history_admin_log_section.cpp | 1 + Telegram/SourceFiles/history/history.cpp | 2 +- .../SourceFiles/history/history_drag_area.cpp | 1 + .../history/history_inner_widget.cpp | 2 + .../history/history_inner_widget.h | 1 + Telegram/SourceFiles/history/history_item.cpp | 1 + Telegram/SourceFiles/history/history_item.h | 1 + .../history/history_item_components.cpp | 14 +- .../SourceFiles/history/history_message.cpp | 8 +- .../SourceFiles/history/history_service.cpp | 2 +- .../SourceFiles/history/history_widget.cpp | 10 +- Telegram/SourceFiles/history/history_widget.h | 1 + .../view/history_view_compose_controls.cpp | 1 + .../view/history_view_compose_controls.h | 2 + .../view/history_view_contact_status.cpp | 3 +- .../view/history_view_context_menu.cpp | 1 + .../history/view/history_view_element.cpp | 2 + .../history/view/history_view_element.h | 1 + .../history/view/history_view_list_widget.cpp | 1 + .../history/view/history_view_message.cpp | 2 + .../view/history_view_scheduled_section.cpp | 2 + .../view/history_view_service_message.cpp | 2 + .../view/history_view_top_bar_widget.cpp | 1 + .../view/media/history_view_contact.cpp | 1 + .../view/media/history_view_document.cpp | 1 + .../history/view/media/history_view_game.cpp | 1 + .../history/view/media/history_view_gif.cpp | 1 + .../history/view/media/history_view_gif.h | 1 + .../view/media/history_view_invoice.cpp | 1 + .../view/media/history_view_location.cpp | 1 + .../history/view/media/history_view_media.h | 2 + .../media/history_view_media_unwrapped.cpp | 2 + .../history/view/media/history_view_photo.cpp | 1 + .../media/history_view_theme_document.cpp | 1 + .../history/view/media/history_view_video.cpp | 1 + .../view/media/history_view_web_page.cpp | 1 + .../SourceFiles/info/info_layer_widget.cpp | 2 + .../SourceFiles/info/info_wrap_widget.cpp | 1 + .../info/media/info_media_list_widget.cpp | 1 + .../info/profile/info_profile_actions.cpp | 1 + .../info/profile/info_profile_values.cpp | 4 +- .../inline_bot_layout_internal.cpp | 1 + .../inline_bots/inline_bot_layout_internal.h | 1 + .../inline_bots/inline_bot_layout_item.h | 3 + .../inline_bots/inline_bot_result.h | 1 + .../inline_bots/inline_bot_send_data.cpp | 1 + .../inline_bots/inline_bot_send_data.h | 2 + .../inline_bots/inline_results_widget.cpp | 2 + .../inline_bots/inline_results_widget.h | 2 + Telegram/SourceFiles/intro/introcode.cpp | 1 + Telegram/SourceFiles/intro/introwidget.cpp | 2 + .../SourceFiles/lang/lang_cloud_manager.cpp | 1 + Telegram/SourceFiles/layout.cpp | 1 + Telegram/SourceFiles/layout.h | 2 + Telegram/SourceFiles/main/main_account.cpp | 1 + Telegram/SourceFiles/main/main_app_config.cpp | 1 + Telegram/SourceFiles/main/main_session.cpp | 1 + Telegram/SourceFiles/mainwidget.cpp | 13 + Telegram/SourceFiles/mainwidget.h | 6 + Telegram/SourceFiles/mainwindow.cpp | 14 + Telegram/SourceFiles/mainwindow.h | 9 +- .../SourceFiles/media/audio/media_audio.cpp | 2 + .../SourceFiles/media/audio/media_audio.h | 3 + .../media/audio/media_audio_capture.h | 2 + .../media/clip/media_clip_reader.cpp | 9 + .../media/clip/media_clip_reader.h | 60 +++ .../media/player/media_player_float.cpp | 2 + .../media/player/media_player_instance.cpp | 1 + .../media/player/media_player_panel.cpp | 1 + .../player/media_player_volume_controller.cpp | 2 + .../player/media_player_volume_controller.h | 2 + .../media/player/media_player_widget.cpp | 4 +- .../media/streaming/media_streaming_common.h | 2 + .../media/view/media_view_group_thumbs.cpp | 1 + .../media/view/media_view_overlay_widget.cpp | 8 +- .../view/media_view_playback_controls.cpp | 1 + .../SourceFiles/mtproto/config_loader.cpp | 1 + .../mtproto/dedicated_file_loader.cpp | 1 + Telegram/SourceFiles/mtproto/mtp_instance.cpp | 1 + Telegram/SourceFiles/mtproto/session.cpp | 1 + Telegram/SourceFiles/mtproto/session.h | 2 + .../mtproto/special_config_request.cpp | 1 + Telegram/SourceFiles/observer_peer.cpp | 1 + .../SourceFiles/overview/overview_layout.cpp | 7 +- .../passport/passport_form_controller.cpp | 2 + .../SourceFiles/passport/passport_panel.h | 4 + .../passport/passport_panel_controller.cpp | 1 + .../passport/passport_panel_edit_contact.cpp | 1 + .../passport/passport_panel_edit_contact.h | 2 + .../passport/passport_panel_edit_document.h | 2 + .../passport/passport_panel_edit_scans.cpp | 1 + .../passport/passport_panel_form.cpp | 4 +- .../passport/passport_panel_password.cpp | 4 +- .../platform/linux/file_utilities_linux.cpp | 2 + .../platform/linux/main_window_linux.cpp | 2 + .../platform/linux/main_window_linux.h | 2 + .../linux/notifications_manager_linux.cpp | 1 + .../SourceFiles/platform/mac/mac_touchbar.mm | 2 + .../platform/mac/main_window_mac.h | 1 + .../platform/mac/main_window_mac.mm | 2 + .../platform/mac/notifications_manager_mac.mm | 1 + .../SourceFiles/platform/mac/specific_mac.mm | 1 + .../platform/mac/window_title_mac.mm | 1 + .../platform/win/file_utilities_win.cpp | 1 + .../platform/win/main_window_win.cpp | 2 + .../platform/win/main_window_win.h | 2 + .../win/notifications_manager_win.cpp | 1 + .../platform/win/windows_event_filter.cpp | 2 + .../profile/profile_back_button.cpp | 1 + .../profile/profile_block_group_members.cpp | 1 + .../profile/profile_block_group_members.h | 2 + .../profile/profile_block_peer_list.cpp | 2 +- .../settings/settings_advanced.cpp | 2 + .../SourceFiles/settings/settings_calls.cpp | 1 + .../SourceFiles/settings/settings_chat.cpp | 2 + .../SourceFiles/settings/settings_codes.cpp | 1 + .../settings/settings_information.cpp | 2 + .../SourceFiles/settings/settings_intro.cpp | 1 + .../SourceFiles/settings/settings_main.cpp | 2 + .../settings/settings_notifications.cpp | 2 + .../settings/settings_privacy_controllers.cpp | 4 +- .../settings/settings_privacy_security.cpp | 1 + .../settings/settings_privacy_security.h | 1 + Telegram/SourceFiles/stdafx.h | 4 +- .../SourceFiles/storage/file_download.cpp | 2 + Telegram/SourceFiles/storage/file_upload.h | 2 + .../SourceFiles/storage/localimageloader.cpp | 1 + Telegram/SourceFiles/storage/localstorage.cpp | 1 + Telegram/SourceFiles/storage/localstorage.h | 4 + .../SourceFiles/storage/serialize_common.cpp | 1 + .../storage/storage_media_prepare.cpp | 1 + .../support/support_autocomplete.cpp | 1 + .../SourceFiles/support/support_helper.cpp | 1 + Telegram/SourceFiles/support/support_helper.h | 2 + .../animation_value.cpp} | 22 +- .../animation_value.h} | 86 ----- Telegram/SourceFiles/ui/effects/animations.h | 2 + .../ui/effects/cross_animation.cpp | 2 + .../SourceFiles/ui/effects/fade_animation.cpp | 2 + .../ui/effects/panel_animation.cpp | 3 + .../ui/effects/ripple_animation.cpp | 1 + .../SourceFiles/ui/effects/round_checkbox.cpp | 1 + .../ui/effects/send_action_animations.cpp | 1 + Telegram/SourceFiles/ui/emoji_config.cpp | 1 + Telegram/SourceFiles/ui/empty_userpic.cpp | 2 + Telegram/SourceFiles/ui/image/image.cpp | 1 + .../SourceFiles/ui/image/image_prepare.cpp | 4 + .../SourceFiles/ui/image/image_source.cpp | 1 + Telegram/SourceFiles/ui/special_buttons.cpp | 2 + Telegram/SourceFiles/ui/style/style_core.cpp | 2 + .../SourceFiles/ui/style/style_core_icon.cpp | 2 + Telegram/SourceFiles/ui/text/text.cpp | 1 + Telegram/SourceFiles/ui/text/text_block.cpp | 1 + Telegram/SourceFiles/ui/text_options.h | 3 + .../SourceFiles/ui/toast/toast_widget.cpp | 1 + Telegram/SourceFiles/ui/widgets/buttons.cpp | 1 + Telegram/SourceFiles/ui/widgets/checkbox.cpp | 1 + .../SourceFiles/ui/widgets/inner_dropdown.cpp | 1 + .../SourceFiles/ui/widgets/inner_dropdown.h | 2 + .../SourceFiles/ui/widgets/input_fields.cpp | 1 + .../SourceFiles/ui/widgets/input_fields.h | 1 + Telegram/SourceFiles/ui/widgets/labels.cpp | 2 + Telegram/SourceFiles/ui/widgets/labels.h | 2 + .../SourceFiles/ui/widgets/multi_select.cpp | 1 + .../SourceFiles/ui/widgets/popup_menu.cpp | 1 + Telegram/SourceFiles/ui/widgets/scroll_area.h | 1 + .../SourceFiles/ui/widgets/separate_panel.cpp | 1 + Telegram/SourceFiles/ui/widgets/tooltip.cpp | 1 + Telegram/SourceFiles/window/layer_widget.cpp | 340 +---------------- Telegram/SourceFiles/window/layer_widget.h | 65 +--- Telegram/SourceFiles/window/main_window.cpp | 2 + .../window/notifications_manager.cpp | 4 +- .../window/notifications_manager.h | 2 + .../window/notifications_manager_default.cpp | 2 + .../window/notifications_manager_default.h | 3 + .../window/themes/window_theme.cpp | 1 + .../window/themes/window_theme_editor.cpp | 2 + .../themes/window_theme_editor_block.cpp | 1 + .../window/themes/window_theme_editor_box.cpp | 1 + .../window/themes/window_theme_warning.cpp | 1 + .../window/themes/window_themes_cloud_list.h | 1 + .../window/window_connecting_widget.cpp | 2 + .../SourceFiles/window/window_controller.cpp | 2 + .../window/window_history_hider.cpp | 2 + .../window/window_lock_widgets.cpp | 9 +- .../SourceFiles/window/window_lock_widgets.h | 2 + .../SourceFiles/window/window_main_menu.cpp | 2 + .../window/window_media_preview.cpp | 347 ++++++++++++++++++ .../SourceFiles/window/window_media_preview.h | 78 ++++ .../SourceFiles/window/window_peer_menu.cpp | 3 +- .../SourceFiles/window/window_peer_menu.h | 1 + .../window/window_session_controller.cpp | 1 + .../window/window_session_controller.h | 5 + .../SourceFiles/window/window_top_bar_wrap.h | 1 + Telegram/gyp/telegram_sources.txt | 6 +- 285 files changed, 1086 insertions(+), 679 deletions(-) rename Telegram/SourceFiles/ui/{animation.cpp => effects/animation_value.cpp} (88%) rename Telegram/SourceFiles/ui/{animation.h => effects/animation_value.h} (86%) create mode 100644 Telegram/SourceFiles/window/window_media_preview.cpp create mode 100644 Telegram/SourceFiles/window/window_media_preview.h diff --git a/Telegram/SourceFiles/api/api_common.h b/Telegram/SourceFiles/api/api_common.h index 9503d8b29..25e737d14 100644 --- a/Telegram/SourceFiles/api/api_common.h +++ b/Telegram/SourceFiles/api/api_common.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +class History; + namespace Api { struct SendOptions { diff --git a/Telegram/SourceFiles/api/api_sending.cpp b/Telegram/SourceFiles/api/api_sending.cpp index c1fa7c9cf..64ca0da43 100644 --- a/Telegram/SourceFiles/api/api_sending.cpp +++ b/Telegram/SourceFiles/api/api_sending.cpp @@ -11,7 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_document.h" #include "data/data_photo.h" #include "data/data_channel.h" // ChannelData::addsSignature. -#include "data/data_user.h" // App::peerName(UserData*). +#include "data/data_user.h" // UserData::name #include "data/data_session.h" #include "data/data_file_origin.h" #include "history/history.h" @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "mainwidget.h" #include "apiwrap.h" +#include "app.h" namespace Api { namespace { @@ -68,9 +69,7 @@ void SendExistingMedia( sendFlags |= MTPmessages_SendMedia::Flag::f_silent; } auto messageFromId = channelPost ? 0 : session->userId(); - auto messagePostAuthor = channelPost - ? App::peerName(session->user()) - : QString(); + auto messagePostAuthor = channelPost ? session->user()->name : QString(); auto caption = TextWithEntities{ message.textWithTags.text, diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 13bb1d7d6..9cf5ab3e3 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -58,6 +58,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/storage_shared_media.h" #include "storage/storage_user_photos.h" #include "storage/storage_media_prepare.h" +#include "facades.h" +#include "app.h" //#include "storage/storage_feed_messages.h" // #feed namespace { @@ -4514,7 +4516,7 @@ void ApiWrap::forwardMessages( ? UserId(0) : peerToUser(self->id); const auto messagePostAuthor = channelPost - ? App::peerName(self) + ? self->name : QString(); history->addNewLocalMessage( newId.msg, @@ -4608,7 +4610,7 @@ void ApiWrap::sendSharedContact( } const auto messageFromId = channelPost ? 0 : _session->userId(); const auto messagePostAuthor = channelPost - ? App::peerName(_session->user()) + ? _session->user()->name : QString(); const auto vcard = QString(); const auto views = 1; @@ -4998,7 +5000,7 @@ void ApiWrap::sendMessage(MessageToSend &&message) { } auto messageFromId = channelPost ? 0 : _session->userId(); auto messagePostAuthor = channelPost - ? App::peerName(_session->user()) + ? _session->user()->name : QString(); if (action.options.scheduled) { flags |= MTPDmessage::Flag::f_from_scheduled; @@ -5136,7 +5138,7 @@ void ApiWrap::sendInlineResult( const auto messageFromId = channelPost ? 0 : _session->userId(); const auto messagePostAuthor = channelPost - ? App::peerName(_session->user()) + ? _session->user()->name : QString(); _session->data().registerMessageRandomId(randomId, newId); diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index fa3fa511b..0dc9dbf19 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -105,23 +105,6 @@ namespace App { return result; } - MainWindow *wnd() { - return (Core::IsAppLaunched() && Core::App().activeWindow()) - ? Core::App().activeWindow()->widget().get() - : nullptr; - } - - MainWidget *main() { - if (auto window = wnd()) { - return window->mainWidget(); - } - return nullptr; - } - - QString peerName(const PeerData *peer, bool forDialogs) { - return peer ? ((forDialogs && peer->isUser() && !peer->asUser()->nameOrPhone.isEmpty()) ? peer->asUser()->nameOrPhone : peer->name) : tr::lng_deleted(tr::now); - } - void prepareCorners(RoundCorners index, int32 radius, const QBrush &brush, const style::color *shadow = nullptr, QImage *cors = nullptr) { Expects(::corners.size() > index); diff --git a/Telegram/SourceFiles/app.h b/Telegram/SourceFiles/app.h index 19b969270..b587a444c 100644 --- a/Telegram/SourceFiles/app.h +++ b/Telegram/SourceFiles/app.h @@ -18,10 +18,16 @@ namespace HistoryView { class Element; } // namespace HistoryView +namespace Media { +namespace Clip { +class Reader; +} // namespace Clip +} // namespace Media + using HistoryItemsMap = base::flat_set>; using GifItems = QHash; -enum RoundCorners { +enum RoundCorners : int { SmallMaskCorners = 0x00, // for images LargeMaskCorners, @@ -60,13 +66,8 @@ enum RoundCorners { }; namespace App { - MainWindow *wnd(); - MainWidget *main(); - QString formatPhone(QString phone); - [[nodiscard]] QString peerName(const PeerData *peer, bool forDialogs = false); - void hoveredItem(HistoryView::Element *item); HistoryView::Element *hoveredItem(); void pressedItem(HistoryView::Element *item); diff --git a/Telegram/SourceFiles/boxes/abstract_box.cpp b/Telegram/SourceFiles/boxes/abstract_box.cpp index 810e3897c..994c290d5 100644 --- a/Telegram/SourceFiles/boxes/abstract_box.cpp +++ b/Telegram/SourceFiles/boxes/abstract_box.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer.h" #include "mainwidget.h" #include "mainwindow.h" +#include "app.h" struct AbstractBox::LoadingProgress { LoadingProgress( @@ -596,3 +597,39 @@ void BoxContentDivider::paintEvent(QPaintEvent *e) { auto dividerFillBottom = myrtlrect(0, height() - st::profileDividerBottom.height(), width(), st::profileDividerBottom.height()); st::profileDividerBottom.fill(p, dividerFillBottom); } + +namespace Ui { +namespace internal { + +void showBox( + object_ptr content, + LayerOptions options, + anim::type animated) { + if (auto w = App::wnd()) { + w->ui_showBox(std::move(content), options, animated); + } +} + +} // namespace internal + +void hideLayer(anim::type animated) { + if (auto w = App::wnd()) { + w->ui_showBox( + { nullptr }, + LayerOption::CloseOther, + animated); + } +} + +void hideSettingsAndLayer(anim::type animated) { + if (auto w = App::wnd()) { + w->ui_hideSettingsAndLayer(animated); + } +} + +bool isLayerShown() { + if (auto w = App::wnd()) return w->ui_isLayerShown(); + return false; +} + +} // namespace Ui diff --git a/Telegram/SourceFiles/boxes/abstract_box.h b/Telegram/SourceFiles/boxes/abstract_box.h index 8b56310e1..5e2a436a9 100644 --- a/Telegram/SourceFiles/boxes/abstract_box.h +++ b/Telegram/SourceFiles/boxes/abstract_box.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/layer_widget.h" #include "base/unique_qptr.h" +#include "base/flags.h" +#include "ui/effects/animation_value.h" #include "ui/rp_widget.h" namespace style { @@ -427,3 +429,30 @@ private: QPointer _value; }; + +// Legacy global method. +namespace Ui { +namespace internal { + +void showBox( + object_ptr content, + LayerOptions options, + anim::type animated); + +} // namespace internal + +template +QPointer show( + object_ptr content, + LayerOptions options = LayerOption::CloseOther, + anim::type animated = anim::type::normal) { + auto result = QPointer(content.data()); + internal::showBox(std::move(content), options, animated); + return result; +} + +void hideLayer(anim::type animated = anim::type::normal); +void hideSettingsAndLayer(anim::type animated = anim::type::normal); +bool isLayerShown(); + +} // namespace Ui diff --git a/Telegram/SourceFiles/boxes/add_contact_box.cpp b/Telegram/SourceFiles/boxes/add_contact_box.cpp index da10ff6bc..0a47c0469 100644 --- a/Telegram/SourceFiles/boxes/add_contact_box.cpp +++ b/Telegram/SourceFiles/boxes/add_contact_box.cpp @@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "observer_peer.h" #include "main/main_session.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/boxes/add_contact_box.h b/Telegram/SourceFiles/boxes/add_contact_box.h index af68be0d7..ccdcbc3b6 100644 --- a/Telegram/SourceFiles/boxes/add_contact_box.h +++ b/Telegram/SourceFiles/boxes/add_contact_box.h @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/sender.h" #include "styles/style_widgets.h" +#include + class ConfirmBox; class PeerListBox; diff --git a/Telegram/SourceFiles/boxes/auto_lock_box.cpp b/Telegram/SourceFiles/boxes/auto_lock_box.cpp index 61db8eb88..cc04ccb77 100644 --- a/Telegram/SourceFiles/boxes/auto_lock_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_lock_box.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "mainwindow.h" #include "ui/widgets/checkbox.h" +#include "facades.h" #include "styles/style_boxes.h" AutoLockBox::AutoLockBox(QWidget*, not_null session) diff --git a/Telegram/SourceFiles/boxes/background_box.cpp b/Telegram/SourceFiles/boxes/background_box.cpp index 4818dcb80..b7b1142f1 100644 --- a/Telegram/SourceFiles/boxes/background_box.cpp +++ b/Telegram/SourceFiles/boxes/background_box.cpp @@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "boxes/background_preview_box.h" #include "boxes/confirm_box.h" +#include "app.h" #include "styles/style_overview.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/boxes/background_preview_box.cpp b/Telegram/SourceFiles/boxes/background_preview_box.cpp index 285936e1b..df4dbbbfb 100644 --- a/Telegram/SourceFiles/boxes/background_preview_box.cpp +++ b/Telegram/SourceFiles/boxes/background_preview_box.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "boxes/confirm_box.h" #include "boxes/background_preview_box.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/boxes/change_phone_box.cpp b/Telegram/SourceFiles/boxes/change_phone_box.cpp index c796919b1..e67261d50 100644 --- a/Telegram/SourceFiles/boxes/change_phone_box.cpp +++ b/Telegram/SourceFiles/boxes/change_phone_box.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "data/data_session.h" #include "data/data_user.h" +#include "app.h" #include "styles/style_boxes.h" namespace { diff --git a/Telegram/SourceFiles/boxes/confirm_box.cpp b/Telegram/SourceFiles/boxes/confirm_box.cpp index 81fdf7204..dedb0c829 100644 --- a/Telegram/SourceFiles/boxes/confirm_box.cpp +++ b/Telegram/SourceFiles/boxes/confirm_box.cpp @@ -34,6 +34,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "main/main_session.h" #include "observer_peer.h" +#include "facades.h" +#include "app.h" #include #include @@ -907,7 +909,9 @@ void ConfirmInviteBox::prepare() { for (const auto user : _participants) { auto name = new Ui::FlatLabel(this, st::confirmInviteUserName); name->resizeToWidth(st::confirmInviteUserPhotoSize + padding); - name->setText(user->firstName.isEmpty() ? App::peerName(user) : user->firstName); + name->setText(user->firstName.isEmpty() + ? user->name + : user->firstName); name->moveToLeft(left + (padding / 2), st::confirmInviteUserNameTop); left += _userWidth; } diff --git a/Telegram/SourceFiles/boxes/confirm_phone_box.cpp b/Telegram/SourceFiles/boxes/confirm_phone_box.cpp index f17ab1b68..ebd3810d6 100644 --- a/Telegram/SourceFiles/boxes/confirm_phone_box.cpp +++ b/Telegram/SourceFiles/boxes/confirm_phone_box.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_info.h" // Platform::SystemVersionPretty #include "mainwidget.h" #include "numbers.h" +#include "app.h" #include "lang/lang_keys.h" namespace { diff --git a/Telegram/SourceFiles/boxes/connection_box.cpp b/Telegram/SourceFiles/boxes/connection_box.cpp index 82593b1cd..b260db701 100644 --- a/Telegram/SourceFiles/boxes/connection_box.cpp +++ b/Telegram/SourceFiles/boxes/connection_box.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/animations.h" #include "ui/effects/radial_animation.h" #include "ui/text_options.h" +#include "facades.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/boxes/create_poll_box.cpp b/Telegram/SourceFiles/boxes/create_poll_box.cpp index c93fe3321..617388bdc 100644 --- a/Telegram/SourceFiles/boxes/create_poll_box.cpp +++ b/Telegram/SourceFiles/boxes/create_poll_box.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/history_view_schedule_box.h" #include "settings/settings_common.h" #include "base/unique_qptr.h" +#include "facades.h" #include "styles/style_boxes.h" #include "styles/style_settings.h" diff --git a/Telegram/SourceFiles/boxes/download_path_box.cpp b/Telegram/SourceFiles/boxes/download_path_box.cpp index 9584c0e7f..18ca38bc6 100644 --- a/Telegram/SourceFiles/boxes/download_path_box.cpp +++ b/Telegram/SourceFiles/boxes/download_path_box.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/checkbox.h" #include "ui/widgets/buttons.h" #include "platform/platform_specific.h" +#include "facades.h" #include "styles/style_boxes.h" DownloadPathBox::DownloadPathBox(QWidget *parent) diff --git a/Telegram/SourceFiles/boxes/edit_caption_box.cpp b/Telegram/SourceFiles/boxes/edit_caption_box.cpp index ca66c3af9..8c0435dc7 100644 --- a/Telegram/SourceFiles/boxes/edit_caption_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_caption_box.cpp @@ -37,6 +37,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "ui/widgets/checkbox.h" #include "confirm_box.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/boxes/edit_caption_box.h b/Telegram/SourceFiles/boxes/edit_caption_box.h index e7b310b67..186fd8a59 100644 --- a/Telegram/SourceFiles/boxes/edit_caption_box.h +++ b/Telegram/SourceFiles/boxes/edit_caption_box.h @@ -10,7 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/abstract_box.h" #include "storage/storage_media_prepare.h" #include "ui/wrap/slide_wrap.h" -#include +#include "media/clip/media_clip_reader.h" namespace ChatHelpers { class TabbedPanel; diff --git a/Telegram/SourceFiles/boxes/edit_color_box.cpp b/Telegram/SourceFiles/boxes/edit_color_box.cpp index 9e1e70dcd..4232a02e2 100644 --- a/Telegram/SourceFiles/boxes/edit_color_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_color_box.cpp @@ -8,11 +8,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/edit_color_box.h" #include "lang/lang_keys.h" -#include "styles/style_boxes.h" #include "ui/widgets/shadow.h" -#include "platform/platform_info.h" -#include "styles/style_mediaview.h" #include "ui/widgets/input_fields.h" +#include "platform/platform_info.h" +#include "app.h" +#include "styles/style_boxes.h" +#include "styles/style_mediaview.h" class EditColorBox::Picker : public TWidget { public: diff --git a/Telegram/SourceFiles/boxes/mute_settings_box.cpp b/Telegram/SourceFiles/boxes/mute_settings_box.cpp index 996d424a2..cd0d46cf9 100644 --- a/Telegram/SourceFiles/boxes/mute_settings_box.cpp +++ b/Telegram/SourceFiles/boxes/mute_settings_box.cpp @@ -11,10 +11,11 @@ Copyright (C) 2017, Nicholas Guriev #include "main/main_session.h" #include "data/data_session.h" #include "data/data_peer.h" -#include "styles/style_boxes.h" #include "ui/special_buttons.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/labels.h" +#include "app.h" +#include "styles/style_boxes.h" namespace { @@ -44,7 +45,7 @@ void MuteSettingsBox::prepare() { icon->moveToLeft(st::boxPadding.left(), y); object_ptr title(this, st::muteChatTitle); - title->setText(App::peerName(_peer, true)); + title->setText(_peer->name); title->moveToLeft( st::boxPadding.left() + st::muteChatTitleLeft, y + (icon->height() / 2) - (title->height() / 2)); diff --git a/Telegram/SourceFiles/boxes/passcode_box.cpp b/Telegram/SourceFiles/boxes/passcode_box.cpp index a8a0b19f2..a60d3ad16 100644 --- a/Telegram/SourceFiles/boxes/passcode_box.cpp +++ b/Telegram/SourceFiles/boxes/passcode_box.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/fade_wrap.h" #include "passport/passport_encryption.h" #include "passport/passport_panel_edit_contact.h" +#include "facades.h" #include "styles/style_boxes.h" #include "styles/style_passport.h" diff --git a/Telegram/SourceFiles/boxes/peer_list_controllers.cpp b/Telegram/SourceFiles/boxes/peer_list_controllers.cpp index 28b64dc4d..3b0a37489 100644 --- a/Telegram/SourceFiles/boxes/peer_list_controllers.cpp +++ b/Telegram/SourceFiles/boxes/peer_list_controllers.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history.h" #include "dialogs/dialogs_main_list.h" #include "window/window_session_controller.h" +#include "facades.h" #include "styles/style_boxes.h" #include "styles/style_profile.h" @@ -456,7 +457,7 @@ void AddBotToGroupBoxController::shareBotGame(not_null chat) { }); auto confirmText = [chat] { if (chat->isUser()) { - return tr::lng_bot_sure_share_game(tr::now, lt_user, App::peerName(chat)); + return tr::lng_bot_sure_share_game(tr::now, lt_user, chat->name); } return tr::lng_bot_sure_share_game_group(tr::now, lt_group, chat->name); }(); diff --git a/Telegram/SourceFiles/boxes/peer_list_controllers.h b/Telegram/SourceFiles/boxes/peer_list_controllers.h index 3682d1311..ddc4ba4f8 100644 --- a/Telegram/SourceFiles/boxes/peer_list_controllers.h +++ b/Telegram/SourceFiles/boxes/peer_list_controllers.h @@ -28,6 +28,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL // //}; +class History; + namespace Window { class SessionNavigation; } // namespace Window diff --git a/Telegram/SourceFiles/boxes/peers/add_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/add_participants_box.cpp index e2e332577..0ae8fadbf 100644 --- a/Telegram/SourceFiles/boxes/peers/add_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/add_participants_box.cpp @@ -24,6 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "apiwrap.h" #include "observer_peer.h" +#include "facades.h" +#include "app.h" namespace { @@ -775,7 +777,7 @@ void AddSpecialBoxController::kickUser( : tr::lng_profile_sure_kick_channel)( tr::now, lt_user, - App::peerName(user)); + user->name); _editBox = Ui::show( Box(text, kickUserSure), LayerOption::KeepOther); diff --git a/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp index 000ea386a..8a14dbf8e 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_contact_box.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/toast/toast.h" #include "main/main_session.h" #include "apiwrap.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp index e4e41b661..2b059460c 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_linked_chat_box.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/confirm_box.h" #include "boxes/add_contact_box.h" #include "apiwrap.h" +#include "facades.h" #include "main/main_session.h" #include "styles/style_boxes.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp index d7ea1c4ca..bd7df538e 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/core_cloud_password.h" #include "base/unixtime.h" #include "apiwrap.h" +#include "facades.h" #include "main/main_session.h" #include "styles/style_boxes.h" #include "styles/style_info.h" @@ -160,7 +161,7 @@ EditParticipantBox::Inner::Inner( _userPhoto->setPointerCursor(false); _userName.setText( st::rightsNameStyle, - App::peerName(_user), + _user->name, Ui::NameTextOptions()); } diff --git a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp index 801f34b9d..411dde9e4 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participants_box.cpp @@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/popup_menu.h" #include "window/window_session_controller.h" #include "history/history.h" +#include "facades.h" namespace { @@ -1817,7 +1818,7 @@ void ParticipantsBoxController::refreshCustomStatus( row->setCustomStatus(tr::lng_channel_admin_status_promoted_by( tr::now, lt_user, - App::peerName(by))); + by->name)); } else { if (_additional.isCreator(user)) { row->setCustomStatus( @@ -1834,7 +1835,7 @@ void ParticipantsBoxController::refreshCustomStatus( : tr::lng_channel_banned_status_restricted_by)( tr::now, lt_user, - by ? App::peerName(by) : "Unknown")); + by ? by->name : "Unknown")); } } diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp index ec4696ad1..dc7b15475 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp @@ -43,9 +43,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/slide_wrap.h" #include "ui/wrap/vertical_layout.h" #include "window/window_session_controller.h" -#include -#include #include "info/profile/info_profile_icon.h" +#include "app.h" +#include "facades.h" namespace { diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp index c4f518295..740033b46 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/peers/edit_peer_info_box.h" #include "window/window_session_controller.h" #include "mainwindow.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/boxes/photo_crop_box.cpp b/Telegram/SourceFiles/boxes/photo_crop_box.cpp index d2922db5a..99699865c 100644 --- a/Telegram/SourceFiles/boxes/photo_crop_box.cpp +++ b/Telegram/SourceFiles/boxes/photo_crop_box.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "ui/widgets/buttons.h" +#include "app.h" #include "styles/style_boxes.h" PhotoCropBox::PhotoCropBox( diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index 8776c6100..9fe13e3ef 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -34,6 +34,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_common.h" #include "window/window_session_controller.h" #include "layout.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/boxes/share_box.cpp b/Telegram/SourceFiles/boxes/share_box.cpp index 80d3163e2..0b5115d16 100644 --- a/Telegram/SourceFiles/boxes/share_box.cpp +++ b/Telegram/SourceFiles/boxes/share_box.cpp @@ -54,7 +54,7 @@ public: Fn callback); void peerUnselected(not_null peer); - QVector selected() const; + std::vector> selected() const; bool hasSelected() const; void peopleReceived( @@ -1064,8 +1064,8 @@ void ShareBox::Inner::refresh() { update(); } -QVector ShareBox::Inner::selected() const { - auto result = QVector(); +std::vector> ShareBox::Inner::selected() const { + auto result = std::vector>(); result.reserve(_dataMap.size()); for (const auto &[peer, chat] : _dataMap) { if (chat->checkbox.checked()) { diff --git a/Telegram/SourceFiles/boxes/share_box.h b/Telegram/SourceFiles/boxes/share_box.h index 480b5345f..69dc63b9c 100644 --- a/Telegram/SourceFiles/boxes/share_box.h +++ b/Telegram/SourceFiles/boxes/share_box.h @@ -56,7 +56,7 @@ class ShareBox : public BoxContent, public RPCSender { public: using CopyCallback = Fn; using SubmitCallback = Fn&&, + std::vector>&&, TextWithTags&&, Api::SendOptions)>; using FilterCallback = Fn; diff --git a/Telegram/SourceFiles/boxes/sticker_set_box.cpp b/Telegram/SourceFiles/boxes/sticker_set_box.cpp index 98faa1e5d..fab66ef90 100644 --- a/Telegram/SourceFiles/boxes/sticker_set_box.cpp +++ b/Telegram/SourceFiles/boxes/sticker_set_box.cpp @@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "mainwidget.h" #include "mainwindow.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/boxes/stickers_box.cpp b/Telegram/SourceFiles/boxes/stickers_box.cpp index e9c88f1bd..ce25b4279 100644 --- a/Telegram/SourceFiles/boxes/stickers_box.cpp +++ b/Telegram/SourceFiles/boxes/stickers_box.cpp @@ -32,6 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image.h" #include "window/window_session_controller.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/boxes/url_auth_box.cpp b/Telegram/SourceFiles/boxes/url_auth_box.cpp index 6763f7196..29c0d6aa8 100644 --- a/Telegram/SourceFiles/boxes/url_auth_box.cpp +++ b/Telegram/SourceFiles/boxes/url_auth_box.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "main/main_session.h" #include "apiwrap.h" +#include "app.h" #include "styles/style_boxes.h" void UrlAuthBox::Activate( @@ -176,7 +177,7 @@ not_null UrlAuthBox::setupContent( textcmdStartSemibold() + domain + textcmdStopSemibold(), lt_user, (textcmdStartSemibold() - + App::peerName(session->user()) + + session->user()->name + textcmdStopSemibold()))); const auto allow = bot ? addCheckbox(tr::lng_url_auth_allow_messages( diff --git a/Telegram/SourceFiles/calls/calls_box_controller.cpp b/Telegram/SourceFiles/calls/calls_box_controller.cpp index 412adf454..cda6825c8 100644 --- a/Telegram/SourceFiles/calls/calls_box_controller.cpp +++ b/Telegram/SourceFiles/calls/calls_box_controller.cpp @@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_media_types.h" #include "data/data_user.h" +#include "facades.h" +#include "app.h" namespace Calls { namespace { diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp index d18170681..6b7b6fb9f 100644 --- a/Telegram/SourceFiles/calls/calls_call.cpp +++ b/Telegram/SourceFiles/calls/calls_call.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "calls/calls_panel.h" #include "data/data_user.h" #include "data/data_session.h" +#include "facades.h" #ifdef slots #undef slots @@ -871,11 +872,11 @@ void Call::setFailedQueued(int error) { void Call::handleRequestError(const RPCError &error) { if (error.type() == qstr("USER_PRIVACY_RESTRICTED")) { - Ui::show(Box(tr::lng_call_error_not_available(tr::now, lt_user, App::peerName(_user)))); + Ui::show(Box(tr::lng_call_error_not_available(tr::now, lt_user, _user->name))); } else if (error.type() == qstr("PARTICIPANT_VERSION_OUTDATED")) { - Ui::show(Box(tr::lng_call_error_outdated(tr::now, lt_user, App::peerName(_user)))); + Ui::show(Box(tr::lng_call_error_outdated(tr::now, lt_user, _user->name))); } else if (error.type() == qstr("CALL_PROTOCOL_LAYER_INVALID")) { - Ui::show(Box(Lang::Hard::CallErrorIncompatible().replace("{user}", App::peerName(_user)))); + Ui::show(Box(Lang::Hard::CallErrorIncompatible().replace("{user}", _user->name))); } finish(FinishType::Failed); } @@ -885,7 +886,7 @@ void Call::handleControllerError(int error) { Ui::show(Box( Lang::Hard::CallErrorIncompatible().replace( "{user}", - App::peerName(_user)))); + _user->name))); } else if (error == tgvoip::ERROR_AUDIO_IO) { Ui::show(Box(tr::lng_call_error_audio_io(tr::now))); } diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp index afb4d81b4..5154c8019 100644 --- a/Telegram/SourceFiles/calls/calls_instance.cpp +++ b/Telegram/SourceFiles/calls/calls_instance.cpp @@ -22,6 +22,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "mainwidget.h" #include "boxes/rate_call_box.h" +#include "facades.h" +#include "app.h" namespace Calls { namespace { @@ -41,7 +43,7 @@ void Instance::startOutgoingCall(not_null user) { if (user->callsStatus() == UserData::CallsStatus::Private) { // Request full user once more to refresh the setting in case it was changed. _session->api().requestFullPeer(user); - Ui::show(Box(tr::lng_call_error_not_available(tr::now, lt_user, App::peerName(user)))); + Ui::show(Box(tr::lng_call_error_not_available(tr::now, lt_user, user->name))); return; } requestMicrophonePermissionOrFail(crl::guard(this, [=] { diff --git a/Telegram/SourceFiles/calls/calls_panel.cpp b/Telegram/SourceFiles/calls/calls_panel.cpp index 220542579..053d602fb 100644 --- a/Telegram/SourceFiles/calls/calls_panel.cpp +++ b/Telegram/SourceFiles/calls/calls_panel.cpp @@ -30,6 +30,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_specific.h" #include "window/main_window.h" #include "layout.h" +#include "app.h" #include #include @@ -357,7 +358,7 @@ void Panel::initControls() { if (!_call || update.peer != _call->user()) { return; } - _name->setText(App::peerName(_call->user())); + _name->setText(_call->user()->name); updateControlsGeometry(); })); _updateDurationTimer.setCallback([this] { @@ -415,7 +416,7 @@ void Panel::reinitControls() { st::callPanelSignalBars, [=] { rtlupdate(signalBarsRect()); }); - _name->setText(App::peerName(_call->user())); + _name->setText(_call->user()->name); updateStatusText(_call->state()); } @@ -815,7 +816,7 @@ void Panel::leaveToChildEvent(QEvent *e, QWidget *child) { } QString Panel::tooltipText() const { - return tr::lng_call_fingerprint_tooltip(tr::now, lt_user, App::peerName(_user)); + return tr::lng_call_fingerprint_tooltip(tr::now, lt_user, _user->name); } QPoint Panel::tooltipPos() const { diff --git a/Telegram/SourceFiles/calls/calls_top_bar.cpp b/Telegram/SourceFiles/calls/calls_top_bar.cpp index 4d7a02081..bea980c4b 100644 --- a/Telegram/SourceFiles/calls/calls_top_bar.cpp +++ b/Telegram/SourceFiles/calls/calls_top_bar.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/abstract_box.h" #include "base/timer.h" #include "layout.h" +#include "app.h" #include "styles/style_calls.h" #include "styles/style_boxes.h" @@ -133,10 +134,10 @@ void TopBar::updateInfoLabels() { } void TopBar::setInfoLabels() { - if (auto call = _call.get()) { - auto user = call->user(); - auto fullName = App::peerName(user); - auto shortName = user->firstName; + if (const auto call = _call.get()) { + const auto user = call->user(); + const auto fullName = user->name; + const auto shortName = user->firstName; _fullInfoLabel->setText(fullName.toUpper()); _shortInfoLabel->setText(shortName.toUpper()); } diff --git a/Telegram/SourceFiles/chat_helpers/bot_keyboard.cpp b/Telegram/SourceFiles/chat_helpers/bot_keyboard.cpp index 810b58af6..8eead3b4f 100644 --- a/Telegram/SourceFiles/chat_helpers/bot_keyboard.cpp +++ b/Telegram/SourceFiles/chat_helpers/bot_keyboard.cpp @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_session.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include "styles/style_widgets.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp index 2e57f42ff..28b24a205 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_list_widget.cpp @@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "emoji_suggestions_helper.h" #include "window/window_session_controller.h" #include "facades.h" +#include "app.h" #include "styles/style_chat_helpers.h" namespace ChatHelpers { diff --git a/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp b/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp index 47493a65d..efda1fd4a 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_sets_manager.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "main/main_account.h" #include "mainwidget.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp index bfa911513..e1a918dc8 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "core/event_filter.h" #include "main/main_session.h" +#include "app.h" #include "styles/style_chat_helpers.h" #include diff --git a/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp b/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp index 7d178ad24..8039fa235 100644 --- a/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp +++ b/Telegram/SourceFiles/chat_helpers/field_autocomplete.cpp @@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "chat_helpers/stickers.h" #include "base/unixtime.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_widgets.h" #include "styles/style_chat_helpers.h" diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index f3bfde0c5..33196bc3d 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -24,6 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "window/window_session_controller.h" #include "history/view/history_view_cursor_state.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.h b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.h index e0955761f..1859459c0 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.h +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.h @@ -10,6 +10,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "chat_helpers/tabbed_selector.h" #include "base/timer.h" #include "inline_bots/inline_bot_layout_item.h" +#include "app.h" + +#include namespace InlineBots { namespace Layout { diff --git a/Telegram/SourceFiles/chat_helpers/stickers.cpp b/Telegram/SourceFiles/chat_helpers/stickers.cpp index b74c5fe69..3fd8c702f 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers.cpp @@ -22,6 +22,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "lottie/lottie_single_player.h" #include "lottie/lottie_multi_player.h" +#include "facades.h" +#include "app.h" #include "styles/style_chat_helpers.h" namespace Stickers { diff --git a/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp b/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp index 1d1d5c1dc..8a7128c99 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_emoji_pack.cpp @@ -17,6 +17,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_document.h" #include "apiwrap.h" +#include "app.h" +#include "facades.h" #include "styles/style_history.h" #include diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index a33cbf155..756918d1c 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "observer_peer.h" #include "apiwrap.h" +#include "app.h" #include "styles/style_chat_helpers.h" #include "styles/style_window.h" diff --git a/Telegram/SourceFiles/chat_helpers/tabbed_panel.cpp b/Telegram/SourceFiles/chat_helpers/tabbed_panel.cpp index 0e650a7dd..f057aef66 100644 --- a/Telegram/SourceFiles/chat_helpers/tabbed_panel.cpp +++ b/Telegram/SourceFiles/chat_helpers/tabbed_panel.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "core/application.h" #include "core/qt_signal_producer.h" +#include "app.h" #include "styles/style_chat_helpers.h" namespace ChatHelpers { diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index dab7d9ad5..ea3ea786a 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -61,6 +61,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/confirm_phone_box.h" #include "boxes/confirm_box.h" #include "boxes/share_box.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/core/click_handler_types.cpp b/Telegram/SourceFiles/core/click_handler_types.cpp index 88e70d72d..92e9e8f2d 100644 --- a/Telegram/SourceFiles/core/click_handler_types.cpp +++ b/Telegram/SourceFiles/core/click_handler_types.cpp @@ -23,6 +23,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/tooltip.h" #include "data/data_user.h" #include "data/data_session.h" +#include "facades.h" +#include "app.h" #include #include @@ -184,8 +186,8 @@ auto MentionNameClickHandler::getTextEntity() const -> TextEntity { } QString MentionNameClickHandler::tooltip() const { - if (auto user = Auth().data().userLoaded(_userId)) { - auto name = App::peerName(user); + if (const auto user = Auth().data().userLoaded(_userId)) { + const auto name = user->name; if (name != _text) { return name; } diff --git a/Telegram/SourceFiles/core/crash_report_window.cpp b/Telegram/SourceFiles/core/crash_report_window.cpp index 79f26fbc6..3f7aeb862 100644 --- a/Telegram/SourceFiles/core/crash_report_window.cpp +++ b/Telegram/SourceFiles/core/crash_report_window.cpp @@ -14,11 +14,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/main_window.h" #include "platform/platform_specific.h" #include "base/zlib_help.h" +#include "app.h" #include #include #include #include +#include namespace { diff --git a/Telegram/SourceFiles/core/local_url_handlers.cpp b/Telegram/SourceFiles/core/local_url_handlers.cpp index 3fad53634..b56fd8afe 100644 --- a/Telegram/SourceFiles/core/local_url_handlers.cpp +++ b/Telegram/SourceFiles/core/local_url_handlers.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "main/main_session.h" #include "apiwrap.h" +#include "app.h" namespace Core { namespace { diff --git a/Telegram/SourceFiles/core/main_queue_processor.cpp b/Telegram/SourceFiles/core/main_queue_processor.cpp index 9eb07a236..3bef14f39 100644 --- a/Telegram/SourceFiles/core/main_queue_processor.cpp +++ b/Telegram/SourceFiles/core/main_queue_processor.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/sandbox.h" #include "platform/platform_specific.h" +#include "facades.h" namespace Core { namespace { diff --git a/Telegram/SourceFiles/core/sandbox.cpp b/Telegram/SourceFiles/core/sandbox.cpp index 2409308dc..f6dbccd38 100644 --- a/Telegram/SourceFiles/core/sandbox.cpp +++ b/Telegram/SourceFiles/core/sandbox.cpp @@ -24,6 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/qthelp_url.h" #include "base/qthelp_regex.h" #include "ui/effects/animations.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/core/shortcuts.cpp b/Telegram/SourceFiles/core/shortcuts.cpp index e732ccef8..645ce116c 100644 --- a/Telegram/SourceFiles/core/shortcuts.cpp +++ b/Telegram/SourceFiles/core/shortcuts.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/player/media_player_instance.h" #include "platform/platform_info.h" #include "base/parse_helper.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/core/update_checker.cpp b/Telegram/SourceFiles/core/update_checker.cpp index 76551517b..338d1f114 100644 --- a/Telegram/SourceFiles/core/update_checker.cpp +++ b/Telegram/SourceFiles/core/update_checker.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "info/settings/info_settings_widget.h" #include "window/window_session_controller.h" #include "settings/settings_intro.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/data/data_cloud_themes.cpp b/Telegram/SourceFiles/data/data_cloud_themes.cpp index 19e4189bc..e4ec1aaff 100644 --- a/Telegram/SourceFiles/data/data_cloud_themes.cpp +++ b/Telegram/SourceFiles/data/data_cloud_themes.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" // Core::App().showTheme. #include "lang/lang_keys.h" #include "apiwrap.h" +#include "app.h" #include "mainwindow.h" namespace Data { diff --git a/Telegram/SourceFiles/data/data_document.cpp b/Telegram/SourceFiles/data/data_document.cpp index 89c7b0894..a036b84b2 100644 --- a/Telegram/SourceFiles/data/data_document.cpp +++ b/Telegram/SourceFiles/data/data_document.cpp @@ -33,6 +33,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "core/application.h" #include "lottie/lottie_animation.h" +#include "facades.h" +#include "app.h" namespace { diff --git a/Telegram/SourceFiles/data/data_document.h b/Telegram/SourceFiles/data/data_document.h index 016d66d60..c5991d0bc 100644 --- a/Telegram/SourceFiles/data/data_document.h +++ b/Telegram/SourceFiles/data/data_document.h @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once #include "base/flags.h" +#include "base/binary_guard.h" #include "data/data_types.h" #include "ui/image/image.h" diff --git a/Telegram/SourceFiles/data/data_document_good_thumbnail.cpp b/Telegram/SourceFiles/data/data_document_good_thumbnail.cpp index d2ac8ecab..428256a08 100644 --- a/Telegram/SourceFiles/data/data_document_good_thumbnail.cpp +++ b/Telegram/SourceFiles/data/data_document_good_thumbnail.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lottie/lottie_animation.h" #include "window/themes/window_theme_preview.h" #include "main/main_session.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/data/data_document_good_thumbnail.h b/Telegram/SourceFiles/data/data_document_good_thumbnail.h index 58b53e384..a13aeb5bb 100644 --- a/Telegram/SourceFiles/data/data_document_good_thumbnail.h +++ b/Telegram/SourceFiles/data/data_document_good_thumbnail.h @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once #include "ui/image/image.h" +#include "base/binary_guard.h" class DocumentData; diff --git a/Telegram/SourceFiles/data/data_folder.cpp b/Telegram/SourceFiles/data/data_folder.cpp index e49932ae8..b42ac116c 100644 --- a/Telegram/SourceFiles/data/data_folder.cpp +++ b/Telegram/SourceFiles/data/data_folder.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "observer_peer.h" #include "apiwrap.h" #include "mainwidget.h" +#include "facades.h" #include "styles/style_dialogs.h" namespace Data { diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index 7c1c9636c..167d1b4d0 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "layout.h" #include "storage/file_upload.h" +#include "app.h" namespace Data { namespace { diff --git a/Telegram/SourceFiles/data/data_peer.cpp b/Telegram/SourceFiles/data/data_peer.cpp index 0c8d75cd2..624b0d661 100644 --- a/Telegram/SourceFiles/data/data_peer.cpp +++ b/Telegram/SourceFiles/data/data_peer.cpp @@ -28,6 +28,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history.h" #include "history/view/history_view_element.h" #include "history/history_item.h" +#include "facades.h" +#include "app.h" namespace { diff --git a/Telegram/SourceFiles/data/data_photo.cpp b/Telegram/SourceFiles/data/data_photo.cpp index bf4406a68..5b5a58881 100644 --- a/Telegram/SourceFiles/data/data_photo.cpp +++ b/Telegram/SourceFiles/data/data_photo.cpp @@ -13,6 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image_source.h" #include "mainwidget.h" #include "core/application.h" +#include "facades.h" +#include "app.h" PhotoData::PhotoData(not_null owner, PhotoId id) : id(id) diff --git a/Telegram/SourceFiles/data/data_pts_waiter.cpp b/Telegram/SourceFiles/data/data_pts_waiter.cpp index 580a8f5e9..b94e47587 100644 --- a/Telegram/SourceFiles/data/data_pts_waiter.cpp +++ b/Telegram/SourceFiles/data/data_pts_waiter.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "main/main_session.h" #include "apiwrap.h" +#include "app.h" uint64 PtsWaiter::ptsKey(PtsSkippedQueue queue, int32 pts) { return _queue.insert(uint64(uint32(pts)) << 32 | (++_skippedKey), queue).key(); diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 897ef57a6..c4a783efa 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -48,6 +48,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_scheduled_messages.h" #include "data/data_cloud_themes.h" #include "base/unixtime.h" +#include "facades.h" +#include "app.h" #include "styles/style_boxes.h" // st::backgroundSize namespace Data { diff --git a/Telegram/SourceFiles/data/data_shared_media.h b/Telegram/SourceFiles/data/data_shared_media.h index 28f745c9b..c184de8e7 100644 --- a/Telegram/SourceFiles/data/data_shared_media.h +++ b/Telegram/SourceFiles/data/data_shared_media.h @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/weak_ptr.h" #include "data/data_sparse_ids.h" +class History; + std::optional SharedMediaOverviewType( Storage::SharedMediaType type); void SharedMediaShowOverview( diff --git a/Telegram/SourceFiles/data/data_user.cpp b/Telegram/SourceFiles/data/data_user.cpp index 685e037e9..d861551b5 100644 --- a/Telegram/SourceFiles/data/data_user.cpp +++ b/Telegram/SourceFiles/data/data_user.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text_options.h" #include "apiwrap.h" #include "lang/lang_keys.h" +#include "facades.h" namespace { diff --git a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp index ffee2f9a9..d56ae68d9 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_entry.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_entry.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "history/history_item.h" #include "history/history.h" +#include "app.h" #include "styles/style_dialogs.h" // st::dialogsTextWidthMin namespace Dialogs { diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index 98cadc406..96d5bfd69 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/multi_select.h" #include "ui/empty_userpic.h" #include "ui/unread_badge.h" +#include "facades.h" #include "styles/style_dialogs.h" #include "styles/style_chat_helpers.h" #include "styles/style_window.h" @@ -2273,12 +2274,7 @@ void InnerWidget::refreshSearchInChatLabel() { dialog, Ui::DialogTextOptions()); } - const auto from = [&] { - if (const auto from = _searchFromUser) { - return App::peerName(from); - } - return QString(); - }(); + const auto from = _searchFromUser ? _searchFromUser->name : QString(); if (!from.isEmpty()) { const auto fromUserText = tr::lng_dlg_search_from( tr::now, diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h index 2a1b6e2f5..08f044dae 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h @@ -36,6 +36,7 @@ namespace Dialogs { class Row; class FakeRow; class IndexedList; +enum class Mode; struct ChosenRow { Key key; diff --git a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp index 4b54adced..4af73bf69 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_layout.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_layout.cpp @@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_folder.h" #include "data/data_peer_values.h" +#include "app.h" namespace Dialogs { namespace Layout { diff --git a/Telegram/SourceFiles/dialogs/dialogs_row.cpp b/Telegram/SourceFiles/dialogs/dialogs_row.cpp index 34da0bbca..7ce16d30f 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_row.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_row.cpp @@ -38,7 +38,7 @@ QString ComposeFolderListEntryText(not_null folder) { list.size() - (throwAwayLastName ? 1 : 0) ); const auto wrapName = [](not_null history) { - const auto name = TextUtilities::Clean(App::peerName(history->peer)); + const auto name = TextUtilities::Clean(history->peer->name); return (history->unreadCount() > 0) ? (textcmdStartSemibold() + textcmdLink(1, name) diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 794934b54..e2e074e69 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -38,6 +38,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat.h" #include "data/data_user.h" #include "data/data_folder.h" +#include "facades.h" +#include "app.h" #include "styles/style_dialogs.h" #include "styles/style_history.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.h b/Telegram/SourceFiles/dialogs/dialogs_widget.h index b26ec7932..9fd8509e6 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.h @@ -40,6 +40,7 @@ class ConnectionState; namespace Dialogs { +enum class Mode; struct RowDescriptor; class Row; class FakeRow; diff --git a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp index 64552d2d6..2c8c1eef1 100644 --- a/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp +++ b/Telegram/SourceFiles/export/view/export_view_panel_controller.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "data/data_session.h" #include "base/unixtime.h" +#include "facades.h" #include "styles/style_export.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/export/view/export_view_settings.h b/Telegram/SourceFiles/export/view/export_view_settings.h index afedfc3d7..d7a22c81b 100644 --- a/Telegram/SourceFiles/export/view/export_view_settings.h +++ b/Telegram/SourceFiles/export/view/export_view_settings.h @@ -10,6 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "export/export_settings.h" #include "ui/rp_widget.h" +class BoxContent; + namespace Ui { class VerticalLayout; class Checkbox; diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp index d15de0a8b..e12eb114e 100644 --- a/Telegram/SourceFiles/facades.cpp +++ b/Telegram/SourceFiles/facades.cpp @@ -182,38 +182,6 @@ void activateClickHandler(ClickHandlerPtr handler, Qt::MouseButton button) { } // namespace App namespace Ui { -namespace internal { - -void showBox( - object_ptr content, - LayerOptions options, - anim::type animated) { - if (auto w = App::wnd()) { - w->ui_showBox(std::move(content), options, animated); - } -} - -} // namespace internal - -void hideLayer(anim::type animated) { - if (auto w = App::wnd()) { - w->ui_showBox( - { nullptr }, - LayerOption::CloseOther, - animated); - } -} - -void hideSettingsAndLayer(anim::type animated) { - if (auto w = App::wnd()) { - w->ui_hideSettingsAndLayer(animated); - } -} - -bool isLayerShown() { - if (auto w = App::wnd()) return w->ui_isLayerShown(); - return false; -} void showPeerProfile(const PeerId &peer) { if (const auto window = App::wnd()) { diff --git a/Telegram/SourceFiles/facades.h b/Telegram/SourceFiles/facades.h index fd44c0866..2817fd8bf 100644 --- a/Telegram/SourceFiles/facades.h +++ b/Telegram/SourceFiles/facades.h @@ -9,8 +9,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/type_traits.h" #include "base/observer.h" +#include "ui/effects/animation_value.h" -class BoxContent; +class History; namespace Data { struct FileOrigin; @@ -78,38 +79,9 @@ void activateClickHandler(ClickHandlerPtr handler, Qt::MouseButton button); } // namespace App - -enum class LayerOption { - CloseOther = (1 << 0), - KeepOther = (1 << 1), - ShowAfterOther = (1 << 2), -}; -using LayerOptions = base::flags; -inline constexpr auto is_flag_type(LayerOption) { return true; }; - namespace Ui { -namespace internal { -void showBox( - object_ptr content, - LayerOptions options, - anim::type animated); - -} // namespace internal - -template -QPointer show( - object_ptr content, - LayerOptions options = LayerOption::CloseOther, - anim::type animated = anim::type::normal) { - auto result = QPointer(content.data()); - internal::showBox(std::move(content), options, animated); - return result; -} - -void hideLayer(anim::type animated = anim::type::normal); -void hideSettingsAndLayer(anim::type animated = anim::type::normal); -bool isLayerShown(); +// Legacy global methods. void showPeerProfile(const PeerId &peer); void showPeerProfile(const PeerData *peer); diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp index fac33ce49..6d3b52db6 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp @@ -42,6 +42,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_media_types.h" #include "data/data_channel.h" #include "data/data_user.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp index e7707841c..958603bd8 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "mainwindow.h" // App::wnd()->sessionController #include "main/main_session.h" +#include "facades.h" namespace AdminLog { namespace { @@ -241,7 +242,7 @@ TextWithEntities GenerateBannedChangeText( auto GenerateUserString(MTPint userId) { // User name in "User name (@username)" format with entities. auto user = Auth().data().user(userId.v); - auto name = TextWithEntities { App::peerName(user) }; + auto name = TextWithEntities { user->name }; auto entityData = QString::number(user->id) + '.' + QString::number(user->accessHash()); @@ -383,7 +384,7 @@ void GenerateItems( }; using Flag = MTPDmessage::Flag; - auto fromName = App::peerName(from); + auto fromName = from->name; auto fromLink = from->createOpenLink(); auto fromLinkText = textcmdLink(1, fromName); diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.h b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.h index cdd2fcf48..fa0373780 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_item.h +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_item.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +class History; + namespace HistoryView { class ElementDelegate; class Element; diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_section.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_section.cpp index 81483e12e..e7eb554f3 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_section.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_section.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_channel.h" #include "data/data_session.h" #include "lang/lang_keys.h" +#include "facades.h" #include "styles/style_history.h" #include "styles/style_window.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/history/history.cpp b/Telegram/SourceFiles/history/history.cpp index 957b71b21..808cf8525 100644 --- a/Telegram/SourceFiles/history/history.cpp +++ b/Telegram/SourceFiles/history/history.cpp @@ -40,8 +40,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text_options.h" #include "core/crash_reports.h" #include "base/unixtime.h" +#include "facades.h" #include "styles/style_dialogs.h" -#include namespace { diff --git a/Telegram/SourceFiles/history/history_drag_area.cpp b/Telegram/SourceFiles/history/history_drag_area.cpp index 9235a485c..b978f0213 100644 --- a/Telegram/SourceFiles/history/history_drag_area.cpp +++ b/Telegram/SourceFiles/history/history_drag_area.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "apiwrap.h" #include "mainwidget.h" +#include "app.h" #include "ui/widgets/shadow.h" DragArea::DragArea(QWidget *parent) : TWidget(parent) { diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index fba413539..ca0580d03 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -49,6 +49,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_poll.h" #include "data/data_photo.h" #include "data/data_user.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/history/history_inner_widget.h b/Telegram/SourceFiles/history/history_inner_widget.h index 91ccef009..41a863c42 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.h +++ b/Telegram/SourceFiles/history/history_inner_widget.h @@ -25,6 +25,7 @@ struct StateRequest; enum class CursorState : char; enum class PointState : char; class EmptyPainter; +class Element; } // namespace HistoryView namespace Window { diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 295b13e38..23dfc8c74 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat.h" #include "data/data_user.h" #include "observer_peer.h" +#include "facades.h" #include "styles/style_dialogs.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/history/history_item.h b/Telegram/SourceFiles/history/history_item.h index 7c2972f1c..87b4d8ac6 100644 --- a/Telegram/SourceFiles/history/history_item.h +++ b/Telegram/SourceFiles/history/history_item.h @@ -55,6 +55,7 @@ class ElementDelegate; } // namespace HistoryView struct HiddenSenderInfo; +class History; class HistoryItem : public RuntimeComposer { public: diff --git a/Telegram/SourceFiles/history/history_item_components.cpp b/Telegram/SourceFiles/history/history_item_components.cpp index facdfa388..5c65ce1c3 100644 --- a/Telegram/SourceFiles/history/history_item_components.cpp +++ b/Telegram/SourceFiles/history/history_item_components.cpp @@ -24,9 +24,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_file_origin.h" #include "main/main_session.h" +#include "window/window_session_controller.h" +#include "facades.h" #include "styles/style_widgets.h" #include "styles/style_history.h" -#include "window/window_session_controller.h" #include @@ -113,7 +114,7 @@ void HistoryMessageForwarded::create(const HistoryMessageVia *via) const { && originalSender->isChannel() && !originalSender->isMegagroup(); const auto name = originalSender - ? App::peerName(originalSender) + ? originalSender->name : hiddenSenderInfo->name; if (!originalAuthor.isEmpty()) { phrase = tr::lng_forwarded_signed( @@ -258,12 +259,9 @@ void HistoryMessageReply::updateName() const { } return replyToMsg->author().get(); }(); - const auto name = [&] { - if (replyToVia && from->isUser()) { - return from->asUser()->firstName; - } - return App::peerName(from); - }(); + const auto name = (replyToVia && from->isUser()) + ? from->asUser()->firstName + : from->name; replyToName.setText(st::fwdTextStyle, name, Ui::NameTextOptions()); replyToVersion = replyToMsg->author()->nameVersion; bool hasPreview = replyToMsg->media() ? replyToMsg->media()->hasReplyPreview() : false; diff --git a/Telegram/SourceFiles/history/history_message.cpp b/Telegram/SourceFiles/history/history_message.cpp index dab3221f6..071d7b8d4 100644 --- a/Telegram/SourceFiles/history/history_message.cpp +++ b/Telegram/SourceFiles/history/history_message.cpp @@ -36,6 +36,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_media_types.h" #include "data/data_channel.h" #include "data/data_user.h" +#include "facades.h" +#include "app.h" #include "styles/style_dialogs.h" #include "styles/style_widgets.h" #include "styles/style_history.h" @@ -224,7 +226,7 @@ void FastShareMessage(not_null item) { } }; auto submitCallback = [=]( - QVector &&result, + std::vector> &&result, TextWithTags &&comment, Api::SendOptions options) { if (!data->requests.empty()) { @@ -251,7 +253,7 @@ void FastShareMessage(not_null item) { auto text = TextWithEntities(); if (result.size() > 1) { text.append( - Ui::Text::Bold(App::peerName(error.second)) + Ui::Text::Bold(error.second->name) ).append("\n\n"); } text.append(error.first); @@ -1312,7 +1314,7 @@ QString HistoryMessage::notificationHeader() const { if (out() && isFromScheduled() && !_history->peer->isSelf()) { return tr::lng_from_you(tr::now); } else if (!_history->peer->isUser() && !isPost()) { - return App::peerName(from()); + return from()->name; } return QString(); } diff --git a/Telegram/SourceFiles/history/history_service.cpp b/Telegram/SourceFiles/history/history_service.cpp index bd1891114..48c905d37 100644 --- a/Telegram/SourceFiles/history/history_service.cpp +++ b/Telegram/SourceFiles/history/history_service.cpp @@ -203,7 +203,7 @@ void HistoryService::setMessageByAction(const MTPmessageAction &action) { result.text = tr::lng_action_secure_values_sent( tr::now, lt_user, - textcmdLink(1, App::peerName(history()->peer)), + textcmdLink(1, history()->peer->name), lt_documents, documents.join(", ")); return result; diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 7970b2541..b03472746 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -90,6 +90,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "support/support_common.h" #include "support/support_autocomplete.h" #include "dialogs/dialogs_key.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_dialogs.h" #include "styles/style_window.h" @@ -998,7 +1000,7 @@ void HistoryWidget::onMentionInsert(UserData *user) { if (user->username.isEmpty()) { replacement = user->firstName; if (replacement.isEmpty()) { - replacement = App::peerName(user); + replacement = user->name; } entityTag = PrepareMentionTag(user); } else { @@ -4542,7 +4544,7 @@ void HistoryWidget::sendFileConfirmed( const auto messageFromId = channelPost ? 0 : session().userId(); const auto messagePostAuthor = channelPost - ? App::peerName(session().user()) + ? session().user()->name : QString(); if (file->type == SendMediaType::Photo) { @@ -6475,7 +6477,7 @@ void HistoryWidget::updateForwardingTexts() { if (!insertedPeers.contains(from)) { insertedPeers.emplace(from); names.push_back(from->shortName()); - fullname = App::peerName(from); + fullname = from->name; } version += from->nameVersion; } else if (const auto info = item->hiddenForwardedInfo()) { @@ -6544,7 +6546,7 @@ void HistoryWidget::updateReplyToName() { }(); _replyToName.setText( st::msgNameStyle, - App::peerName(from), + from->name, Ui::NameTextOptions()); _replyToNameVersion = (_replyEditMsg ? _replyEditMsg : _kbReplyTo)->author()->nameVersion; } diff --git a/Telegram/SourceFiles/history/history_widget.h b/Telegram/SourceFiles/history/history_widget.h index c621bc9c5..df9eb8c98 100644 --- a/Telegram/SourceFiles/history/history_widget.h +++ b/Telegram/SourceFiles/history/history_widget.h @@ -83,6 +83,7 @@ struct UploadedThumbDocument; namespace HistoryView { class TopBarWidget; class ContactStatus; +class Element; } // namespace HistoryView class DragArea; diff --git a/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp b/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp index 08344c352..b85d551bd 100644 --- a/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp +++ b/Telegram/SourceFiles/history/view/history_view_compose_controls.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "chat_helpers/emoji_suggestions_widget.h" #include "window/window_session_controller.h" #include "inline_bots/inline_results_widget.h" +#include "facades.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/history_view_compose_controls.h b/Telegram/SourceFiles/history/view/history_view_compose_controls.h index 06c814800..3075462e5 100644 --- a/Telegram/SourceFiles/history/view/history_view_compose_controls.h +++ b/Telegram/SourceFiles/history/view/history_view_compose_controls.h @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/animations.h" #include "chat_helpers/tabbed_selector.h" +class History; + namespace ChatHelpers { class TabbedPanel; class TabbedSelector; diff --git a/Telegram/SourceFiles/history/view/history_view_contact_status.cpp b/Telegram/SourceFiles/history/view/history_view_contact_status.cpp index 0c9d260fe..6404bccd4 100644 --- a/Telegram/SourceFiles/history/view/history_view_contact_status.cpp +++ b/Telegram/SourceFiles/history/view/history_view_contact_status.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/confirm_box.h" #include "boxes/generic_box.h" // window->show(Box(InitMethod())) #include "boxes/peers/edit_contact_box.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_boxes.h" @@ -336,7 +337,7 @@ void ContactStatus::setupShareHandler(not_null user) { Ui::Text::WithEntities( App::formatPhone(user->session().user()->phone())), lt_user, - Ui::Text::Bold(App::peerName(user)), + Ui::Text::Bold(user->name), Ui::Text::WithEntities), tr::lng_box_ok(tr::now), share)); diff --git a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp index 6703aeed8..8636b26c5 100644 --- a/Telegram/SourceFiles/history/view/history_view_context_menu.cpp +++ b/Telegram/SourceFiles/history/view/history_view_context_menu.cpp @@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" // App::wnd()->sessionController #include "main/main_session.h" #include "apiwrap.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/history/view/history_view_element.cpp b/Telegram/SourceFiles/history/view/history_view_element.cpp index 6edb1f866..3c42a9768 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.cpp +++ b/Telegram/SourceFiles/history/view/history_view_element.cpp @@ -23,6 +23,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_media_types.h" #include "lang/lang_keys.h" #include "layout.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/history_view_element.h b/Telegram/SourceFiles/history/view/history_view_element.h index 39c10ee9d..6d58d5604 100644 --- a/Telegram/SourceFiles/history/view/history_view_element.h +++ b/Telegram/SourceFiles/history/view/history_view_element.h @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/runtime_composer.h" #include "base/flags.h" +class History; class HistoryBlock; class HistoryItem; class HistoryMessage; diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 3207cfd34..be5746de3 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_media_types.h" #include "data/data_document.h" #include "data/data_peer.h" +#include "facades.h" #include "styles/style_history.h" #include diff --git a/Telegram/SourceFiles/history/view/history_view_message.cpp b/Telegram/SourceFiles/history/view/history_view_message.cpp index 9a294479b..ae3a5f951 100644 --- a/Telegram/SourceFiles/history/view/history_view_message.cpp +++ b/Telegram/SourceFiles/history/view/history_view_message.cpp @@ -23,6 +23,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "window/window_session_controller.h" #include "layout.h" +#include "facades.h" +#include "app.h" #include "styles/style_widgets.h" #include "styles/style_history.h" #include "styles/style_dialogs.h" diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index 0938a5a2d..48801ef75 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -35,6 +35,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "inline_bots/inline_bot_result.h" #include "lang/lang_keys.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_window.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/history/view/history_view_service_message.cpp b/Telegram/SourceFiles/history/view/history_view_service_message.cpp index 43de83692..3264fe1b9 100644 --- a/Telegram/SourceFiles/history/view/history_view_service_message.cpp +++ b/Telegram/SourceFiles/history/view/history_view_service_message.cpp @@ -19,6 +19,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "layout.h" #include "lang/lang_keys.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp index 9ff68df08..c6f4e5209 100644 --- a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp @@ -38,6 +38,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "support/support_helper.h" #include "observer_peer.h" #include "apiwrap.h" +#include "facades.h" #include "styles/style_window.h" #include "styles/style_dialogs.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/history/view/media/history_view_contact.cpp b/Telegram/SourceFiles/history/view/media/history_view_contact.cpp index dfdbd4665..42db87d77 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_contact.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_contact.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_media_types.h" #include "main/main_session.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_document.cpp b/Telegram/SourceFiles/history/view/media/history_view_document.cpp index fe53bc1b2..ec4a45cba 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_document.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_document.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_document.h" #include "data/data_media_types.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_game.cpp b/Telegram/SourceFiles/history/view/media/history_view_game.cpp index 235467df9..faa30fadc 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_game.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_game.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_game.h" #include "data/data_media_types.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_gif.cpp b/Telegram/SourceFiles/history/view/media/history_view_gif.cpp index 0adece316..45002a2f2 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_gif.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_gif.cpp @@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image.h" #include "data/data_session.h" #include "data/data_document.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_gif.h b/Telegram/SourceFiles/history/view/media/history_view_gif.h index 29480d792..9bceaf872 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_gif.h +++ b/Telegram/SourceFiles/history/view/media/history_view_gif.h @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once #include "history/view/media/history_view_file.h" +#include "media/clip/media_clip_reader.h" struct HistoryMessageVia; struct HistoryMessageReply; diff --git a/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp b/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp index abf012ec9..ab427878a 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_invoice.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/media/history_view_media_common.h" #include "ui/text_options.h" #include "data/data_media_types.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_location.cpp b/Telegram/SourceFiles/history/view/media/history_view_location.cpp index 4ab2c7cc4..36d7c7c11 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_location.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_location.cpp @@ -17,6 +17,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text_options.h" #include "data/data_file_origin.h" #include "data/data_location.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_media.h b/Telegram/SourceFiles/history/view/media/history_view_media.h index b564d6bbf..e502bbe24 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_media.h +++ b/Telegram/SourceFiles/history/view/media/history_view_media.h @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/history_view_object.h" +class History; struct HistoryMessageEdited; struct TextSelection; @@ -29,6 +30,7 @@ enum class CursorState : char; enum class InfoDisplayType : char; struct TextState; struct StateRequest; +class Element; enum class MediaInBubbleState { None, diff --git a/Telegram/SourceFiles/history/view/media/history_view_media_unwrapped.cpp b/Telegram/SourceFiles/history/view/media/history_view_media_unwrapped.cpp index fdc16644f..3f989962a 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_media_unwrapped.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_media_unwrapped.cpp @@ -13,6 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_item.h" #include "history/history_item_components.h" #include "layout.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_photo.cpp b/Telegram/SourceFiles/history/view/media/history_view_photo.cpp index 98c706d36..c88066fc5 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_photo.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_photo.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_photo.h" #include "data/data_file_origin.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_theme_document.cpp b/Telegram/SourceFiles/history/view/media/history_view_theme_document.cpp index c0265dfac..6d5990e13 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_theme_document.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_theme_document.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_file_origin.h" #include "base/qthelp_url.h" #include "window/themes/window_theme.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_video.cpp b/Telegram/SourceFiles/history/view/media/history_view_video.cpp index 71be2781d..3036f82b5 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_video.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_video.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_document.h" #include "data/data_file_origin.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp index 2ac889f87..2fd09d339 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_web_page.h" #include "data/data_photo.h" #include "data/data_file_origin.h" +#include "app.h" #include "styles/style_history.h" namespace HistoryView { diff --git a/Telegram/SourceFiles/info/info_layer_widget.cpp b/Telegram/SourceFiles/info/info_layer_widget.cpp index 70acaa1fa..2b745796c 100644 --- a/Telegram/SourceFiles/info/info_layer_widget.cpp +++ b/Telegram/SourceFiles/info/info_layer_widget.cpp @@ -17,6 +17,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "window/main_window.h" #include "main/main_session.h" +#include "boxes/abstract_box.h" +#include "app.h" #include "styles/style_info.h" #include "styles/style_window.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/info/info_wrap_widget.cpp b/Telegram/SourceFiles/info/info_wrap_widget.cpp index a1b5a4821..f677dc281 100644 --- a/Telegram/SourceFiles/info/info_wrap_widget.cpp +++ b/Telegram/SourceFiles/info/info_wrap_widget.cpp @@ -32,6 +32,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "mainwidget.h" #include "lang/lang_keys.h" +#include "facades.h" #include "styles/style_info.h" #include "styles/style_profile.h" diff --git a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp index 3d3fd14b4..f8fe93706 100644 --- a/Telegram/SourceFiles/info/media/info_media_list_widget.cpp +++ b/Telegram/SourceFiles/info/media/info_media_list_widget.cpp @@ -32,6 +32,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/peer_list_controllers.h" #include "boxes/confirm_box.h" #include "core/file_utilities.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp index be21181a3..d40976216 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp @@ -44,6 +44,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "core/application.h" #include "apiwrap.h" +#include "facades.h" #include "styles/style_info.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/info/profile/info_profile_values.cpp b/Telegram/SourceFiles/info/profile/info_profile_values.cpp index 390bc31b6..2a9a051a2 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_values.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_values.cpp @@ -20,8 +20,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat.h" #include "data/data_user.h" #include "data/data_session.h" - #include "boxes/peers/edit_peer_permissions_box.h" +#include "app.h" namespace Info { namespace Profile { @@ -50,7 +50,7 @@ rpl::producer NameValue(not_null peer) { peer, Notify::PeerUpdate::Flag::NameChanged ) | rpl::map([=] { - return App::peerName(peer); + return peer->name; }) | Ui::Text::ToWithEntities(); } diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp index 4b44550f7..d186b9751 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "apiwrap.h" #include "lang/lang_keys.h" +#include "app.h" namespace InlineBots { namespace Layout { diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h index e98750b0a..f98e2cd6b 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.h @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/flags.h" #include "inline_bots/inline_bot_layout_item.h" +#include "media/clip/media_clip_reader.h" #include "ui/effects/animations.h" #include "ui/effects/radial_animation.h" #include "ui/text/text.h" diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h index fac4cc357..106cfb507 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h @@ -11,10 +11,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text.h" namespace InlineBots { + class Result; namespace Layout { +class ItemBase; + class PaintContext : public PaintContextBase { public: PaintContext(crl::time ms, bool selecting, bool paused, bool lastRow) diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_result.h b/Telegram/SourceFiles/inline_bots/inline_bot_result.h index ea475a2ba..dd0965dcd 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_result.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_result.h @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once class FileLoader; +class History; namespace Data { class LocationPoint; diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_send_data.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_send_data.cpp index 22dfaea18..591c3a07f 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_send_data.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_send_data.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "history/history.h" #include "data/data_channel.h" +#include "app.h" namespace InlineBots { namespace internal { diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_send_data.h b/Telegram/SourceFiles/inline_bots/inline_bot_send_data.h index 305f00a33..745a69573 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_send_data.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_send_data.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_location_manager.h" +class History; + namespace InlineBots { class Result; diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp index 09170d69a..6b1d32e45 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.cpp @@ -32,6 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/labels.h" #include "observer_peer.h" #include "history/view/history_view_cursor_state.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/inline_bots/inline_results_widget.h b/Telegram/SourceFiles/inline_bots/inline_results_widget.h index 00c675eaf..cddaeb12b 100644 --- a/Telegram/SourceFiles/inline_bots/inline_results_widget.h +++ b/Telegram/SourceFiles/inline_bots/inline_results_widget.h @@ -16,6 +16,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/sender.h" #include "inline_bots/inline_bot_layout_item.h" +#include + namespace Ui { class ScrollArea; class IconButton; diff --git a/Telegram/SourceFiles/intro/introcode.cpp b/Telegram/SourceFiles/intro/introcode.cpp index 356f8ce7b..dae73e530 100644 --- a/Telegram/SourceFiles/intro/introcode.cpp +++ b/Telegram/SourceFiles/intro/introcode.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/labels.h" #include "ui/text/text_utilities.h" #include "boxes/confirm_box.h" +#include "app.h" #include "styles/style_intro.h" namespace Intro { diff --git a/Telegram/SourceFiles/intro/introwidget.cpp b/Telegram/SourceFiles/intro/introwidget.cpp index 0f071070d..4d3d4d3f7 100644 --- a/Telegram/SourceFiles/intro/introwidget.cpp +++ b/Telegram/SourceFiles/intro/introwidget.cpp @@ -36,6 +36,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "lang/lang_cloud_manager.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_intro.h" #include "styles/style_window.h" diff --git a/Telegram/SourceFiles/lang/lang_cloud_manager.cpp b/Telegram/SourceFiles/lang/lang_cloud_manager.cpp index 7a40953bd..57f8d74df 100644 --- a/Telegram/SourceFiles/lang/lang_cloud_manager.cpp +++ b/Telegram/SourceFiles/lang/lang_cloud_manager.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_file_parser.h" #include "core/file_utilities.h" #include "core/click_handler_types.h" +#include "app.h" #include "styles/style_boxes.h" namespace Lang { diff --git a/Telegram/SourceFiles/layout.cpp b/Telegram/SourceFiles/layout.cpp index eeb5837e8..f955eac8f 100644 --- a/Telegram/SourceFiles/layout.cpp +++ b/Telegram/SourceFiles/layout.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/audio/media_audio.h" #include "storage/localstorage.h" #include "history/view/history_view_cursor_state.h" +#include "app.h" QString formatSizeText(qint64 size) { if (size >= 1024 * 1024) { // more than 1 mb diff --git a/Telegram/SourceFiles/layout.h b/Telegram/SourceFiles/layout.h index d05b0c644..9ef2e8f6e 100644 --- a/Telegram/SourceFiles/layout.h +++ b/Telegram/SourceFiles/layout.h @@ -14,6 +14,8 @@ struct TextState; struct StateRequest; } // namespace HistoryView +enum RoundCorners : int; + constexpr auto FullSelection = TextSelection { 0xFFFF, 0xFFFF }; inline bool IsSubGroupSelection(TextSelection selection) { diff --git a/Telegram/SourceFiles/main/main_account.cpp b/Telegram/SourceFiles/main/main_account.cpp index 434d20fc4..12d765491 100644 --- a/Telegram/SourceFiles/main/main_account.cpp +++ b/Telegram/SourceFiles/main/main_account.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "observer_peer.h" #include "main/main_session.h" +#include "facades.h" namespace Main { diff --git a/Telegram/SourceFiles/main/main_app_config.cpp b/Telegram/SourceFiles/main/main_app_config.cpp index 22b55f51c..d6684a6a7 100644 --- a/Telegram/SourceFiles/main/main_app_config.cpp +++ b/Telegram/SourceFiles/main/main_app_config.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "apiwrap.h" +#include "facades.h" namespace Main { namespace { diff --git a/Telegram/SourceFiles/main/main_session.cpp b/Telegram/SourceFiles/main/main_session.cpp index 43d7fd971..df7a8de7a 100644 --- a/Telegram/SourceFiles/main/main_session.cpp +++ b/Telegram/SourceFiles/main/main_session.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "calls/calls_instance.h" #include "support/support_helper.h" #include "observer_peer.h" +#include "facades.h" namespace Main { namespace { diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 3ee3ff980..2ec78ca6c 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -96,6 +96,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/storage_facade.h" #include "storage/storage_shared_media.h" #include "storage/storage_user_photos.h" +#include "app.h" +#include "facades.h" #include "styles/style_dialogs.h" #include "styles/style_history.h" #include "styles/style_boxes.h" @@ -4622,3 +4624,14 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { } } + +namespace App { + +MainWidget *main() { + if (const auto window = wnd()) { + return window->mainWidget(); + } + return nullptr; +} + +} // namespace App diff --git a/Telegram/SourceFiles/mainwidget.h b/Telegram/SourceFiles/mainwidget.h index dc82b283a..f2bd4ce59 100644 --- a/Telegram/SourceFiles/mainwidget.h +++ b/Telegram/SourceFiles/mainwidget.h @@ -20,6 +20,7 @@ class ConfirmBox; class HistoryWidget; class StackItem; struct FileLoadResult; +class History; namespace Api { struct SendAction; @@ -42,6 +43,7 @@ struct RowDescriptor; class Row; class Key; class Widget; +enum class Mode; } // namespace Dialogs namespace Media { @@ -545,3 +547,7 @@ private: int _firstColumnResizingShift = 0; }; + +namespace App { +MainWidget *main(); +} // namespace App diff --git a/Telegram/SourceFiles/mainwindow.cpp b/Telegram/SourceFiles/mainwindow.cpp index a372f7986..d3e5acb53 100644 --- a/Telegram/SourceFiles/mainwindow.cpp +++ b/Telegram/SourceFiles/mainwindow.cpp @@ -43,7 +43,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme_warning.h" #include "window/window_lock_widgets.h" #include "window/window_main_menu.h" +#include "window/window_controller.h" // App::wnd. #include "window/window_session_controller.h" +#include "window/window_media_preview.h" +#include "facades.h" +#include "app.h" #include #include @@ -951,3 +955,13 @@ MainWindow::~MainWindow() { delete trayIcon; delete trayIconMenu; } + +namespace App { + +MainWindow *wnd() { + return (Core::IsAppLaunched() && Core::App().activeWindow()) + ? Core::App().activeWindow()->widget().get() + : nullptr; +} + +} // namespace App diff --git a/Telegram/SourceFiles/mainwindow.h b/Telegram/SourceFiles/mainwindow.h index 1e9ada82d..ffc1604b3 100644 --- a/Telegram/SourceFiles/mainwindow.h +++ b/Telegram/SourceFiles/mainwindow.h @@ -10,6 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_specific.h" #include "platform/platform_main_window.h" #include "base/unique_qptr.h" +#include "window/layer_widget.h" +#include "ui/effects/animation_value.h" class MainWidget; class BoxContent; @@ -23,6 +25,7 @@ class ClearManager; } // namespace Local namespace Window { +class MediaPreviewWidget; class LayerWidget; class LayerStackWidget; class SectionMemento; @@ -169,10 +172,14 @@ private: object_ptr _intro = { nullptr }; object_ptr _main = { nullptr }; base::unique_qptr _layer; - object_ptr _mediaPreview = { nullptr }; + object_ptr _mediaPreview = { nullptr }; object_ptr _testingThemeWarning = { nullptr }; Local::ClearManager *_clearManager = nullptr; }; + +namespace App { +MainWindow *wnd(); +} // namespace App diff --git a/Telegram/SourceFiles/media/audio/media_audio.cpp b/Telegram/SourceFiles/media/audio/media_audio.cpp index af0935f6e..c1234c4da 100644 --- a/Telegram/SourceFiles/media/audio/media_audio.cpp +++ b/Telegram/SourceFiles/media/audio/media_audio.cpp @@ -18,6 +18,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_audio.h" #include "core/application.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/media/audio/media_audio.h b/Telegram/SourceFiles/media/audio/media_audio.h index 45fadf33e..83bbbb568 100644 --- a/Telegram/SourceFiles/media/audio/media_audio.h +++ b/Telegram/SourceFiles/media/audio/media_audio.h @@ -7,9 +7,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +#include "ui/effects/animation_value.h" #include "storage/localimageloader.h" #include "base/bytes.h" +#include + namespace Media { struct ExternalSoundData; struct ExternalSoundPart; diff --git a/Telegram/SourceFiles/media/audio/media_audio_capture.h b/Telegram/SourceFiles/media/audio/media_audio_capture.h index 0affbbc9e..b60c6422b 100644 --- a/Telegram/SourceFiles/media/audio/media_audio_capture.h +++ b/Telegram/SourceFiles/media/audio/media_audio_capture.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +#include + struct AVFrame; namespace Media { diff --git a/Telegram/SourceFiles/media/clip/media_clip_reader.cpp b/Telegram/SourceFiles/media/clip/media_clip_reader.cpp index a88fa2ccc..2b063b6b2 100644 --- a/Telegram/SourceFiles/media/clip/media_clip_reader.cpp +++ b/Telegram/SourceFiles/media/clip/media_clip_reader.cpp @@ -933,5 +933,14 @@ void Finish() { } } +Reader *const ReaderPointer::BadPointer = SharedMemoryLocation(); + +ReaderPointer::~ReaderPointer() { + if (valid()) { + delete _pointer; + } + _pointer = nullptr; +} + } // namespace Clip } // namespace Media diff --git a/Telegram/SourceFiles/media/clip/media_clip_reader.h b/Telegram/SourceFiles/media/clip/media_clip_reader.h index 537acde4f..0f62f650b 100644 --- a/Telegram/SourceFiles/media/clip/media_clip_reader.h +++ b/Telegram/SourceFiles/media/clip/media_clip_reader.h @@ -10,6 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localimageloader.h" #include "ui/image/image_prepare.h" +#include + class FileLocation; namespace Media { @@ -40,6 +42,11 @@ enum ReaderSteps { WaitingForFirstFrameStep = -1, // before ReaderPrivate got the frame request and started waiting for the 1-2 delay }; +enum Notification { + NotificationReinit, + NotificationRepaint, +}; + class ReaderPrivate; class Reader { public: @@ -169,6 +176,59 @@ private: }; +class ReaderPointer { +public: + ReaderPointer(std::nullptr_t = nullptr) { + } + explicit ReaderPointer(Reader *pointer) : _pointer(pointer) { + } + ReaderPointer(const ReaderPointer &other) = delete; + ReaderPointer &operator=(const ReaderPointer &other) = delete; + ReaderPointer(ReaderPointer &&other) : _pointer(base::take(other._pointer)) { + } + ReaderPointer &operator=(ReaderPointer &&other) { + swap(other); + return *this; + } + void swap(ReaderPointer &other) { + qSwap(_pointer, other._pointer); + } + Reader *get() const { + return valid() ? _pointer : nullptr; + } + Reader *operator->() const { + return get(); + } + void setBad() { + reset(); + _pointer = BadPointer; + } + void reset() { + ReaderPointer temp; + swap(temp); + } + bool isBad() const { + return (_pointer == BadPointer); + } + bool valid() const { + return _pointer && !isBad(); + } + explicit operator bool() const { + return valid(); + } + static inline ReaderPointer Bad() { + ReaderPointer result; + result.setBad(); + return result; + } + ~ReaderPointer(); + +private: + Reader *_pointer = nullptr; + static Reader *const BadPointer; + +}; + template inline ReaderPointer MakeReader(Args&&... args) { return ReaderPointer(new Reader(std::forward(args)...)); diff --git a/Telegram/SourceFiles/media/player/media_player_float.cpp b/Telegram/SourceFiles/media/player/media_player_float.cpp index 1b5575d2c..5a60d2646 100644 --- a/Telegram/SourceFiles/media/player/media_player_float.cpp +++ b/Telegram/SourceFiles/media/player/media_player_float.cpp @@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "window/section_widget.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include "styles/style_media_player.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/media/player/media_player_instance.cpp b/Telegram/SourceFiles/media/player/media_player_instance.cpp index 937401b4a..eee1fb065 100644 --- a/Telegram/SourceFiles/media/player/media_player_instance.cpp +++ b/Telegram/SourceFiles/media/player/media_player_instance.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_account.h" // Account::sessionValue. #include "mainwindow.h" #include "main/main_session.h" +#include "facades.h" namespace Media { namespace Player { diff --git a/Telegram/SourceFiles/media/player/media_player_panel.cpp b/Telegram/SourceFiles/media/player/media_player_panel.cpp index b12a078f6..1ee47fa82 100644 --- a/Telegram/SourceFiles/media/player/media_player_panel.cpp +++ b/Telegram/SourceFiles/media/player/media_player_panel.cpp @@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/scroll_area.h" #include "mainwindow.h" #include "main/main_session.h" +#include "app.h" #include "styles/style_overview.h" #include "styles/style_widgets.h" #include "styles/style_media_player.h" diff --git a/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp b/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp index b86977f86..d2f9c7d41 100644 --- a/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp +++ b/Telegram/SourceFiles/media/player/media_player_volume_controller.cpp @@ -15,6 +15,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_widgets.h" #include "mainwindow.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" namespace Media { namespace Player { diff --git a/Telegram/SourceFiles/media/player/media_player_volume_controller.h b/Telegram/SourceFiles/media/player/media_player_volume_controller.h index 5a324a459..f9e0101ef 100644 --- a/Telegram/SourceFiles/media/player/media_player_volume_controller.h +++ b/Telegram/SourceFiles/media/player/media_player_volume_controller.h @@ -10,6 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/animations.h" #include "ui/rp_widget.h" +#include + namespace Ui { class IconButton; class MediaSlider; diff --git a/Telegram/SourceFiles/media/player/media_player_widget.cpp b/Telegram/SourceFiles/media/player/media_player_widget.cpp index 5c744035b..9384eeb13 100644 --- a/Telegram/SourceFiles/media/player/media_player_widget.cpp +++ b/Telegram/SourceFiles/media/player/media_player_widget.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_specific.h" #include "data/data_document.h" #include "data/data_session.h" +#include "data/data_peer.h" #include "ui/widgets/labels.h" #include "ui/widgets/continuous_sliders.h" #include "ui/widgets/shadow.h" @@ -27,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "layout.h" #include "main/main_session.h" +#include "facades.h" namespace Media { namespace Player { @@ -515,7 +517,7 @@ void Widget::handleSongChange() { TextWithEntities textWithEntities; if (document->isVoiceMessage() || document->isVideoMessage()) { if (const auto item = Auth().data().message(current.contextId())) { - const auto name = App::peerName(item->fromOriginal()); + const auto name = item->fromOriginal()->name; const auto date = [item] { const auto parsed = ItemDateTime(item); const auto date = parsed.date(); diff --git a/Telegram/SourceFiles/media/streaming/media_streaming_common.h b/Telegram/SourceFiles/media/streaming/media_streaming_common.h index 3afdc5768..71263faeb 100644 --- a/Telegram/SourceFiles/media/streaming/media_streaming_common.h +++ b/Telegram/SourceFiles/media/streaming/media_streaming_common.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +enum class ImageRoundRadius; + namespace Media { inline constexpr auto kTimeUnknown = std::numeric_limits::min(); diff --git a/Telegram/SourceFiles/media/view/media_view_group_thumbs.cpp b/Telegram/SourceFiles/media/view/media_view_group_thumbs.cpp index 41a84d1a6..8e53a6227 100644 --- a/Telegram/SourceFiles/media/view/media_view_group_thumbs.cpp +++ b/Telegram/SourceFiles/media/view/media_view_group_thumbs.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/view/media/history_view_media.h" #include "ui/image/image.h" #include "main/main_session.h" +#include "app.h" #include "styles/style_mediaview.h" namespace Media { diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index 7000d1b96..f13ac5182 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -46,6 +46,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "layout.h" #include "storage/file_download.h" #include "calls/calls_instance.h" +#include "facades.h" +#include "app.h" #include "styles/style_mediaview.h" #include "styles/style_history.h" @@ -1596,12 +1598,12 @@ void OverlayWidget::refreshFromLabel(HistoryItem *item) { _fromName = info->name; } else { Assert(_from != nullptr); - _fromName = App::peerName( - _from->migrateTo() ? _from->migrateTo() : _from); + const auto from = _from->migrateTo() ? _from->migrateTo() : _from; + _fromName = from->name; } } else { _from = _user; - _fromName = _user ? App::peerName(_user) : QString(); + _fromName = _user ? _user->name : QString(); } } diff --git a/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp b/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp index a53d08750..e4adf5ece 100644 --- a/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp +++ b/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "lang/lang_keys.h" #include "layout.h" +#include "app.h" #include "styles/style_mediaview.h" namespace Media { diff --git a/Telegram/SourceFiles/mtproto/config_loader.cpp b/Telegram/SourceFiles/mtproto/config_loader.cpp index 7c9fa99b5..76536dd56 100644 --- a/Telegram/SourceFiles/mtproto/config_loader.cpp +++ b/Telegram/SourceFiles/mtproto/config_loader.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/dc_options.h" #include "mtproto/mtp_instance.h" #include "mtproto/special_config_request.h" +#include "facades.h" namespace MTP { namespace internal { diff --git a/Telegram/SourceFiles/mtproto/dedicated_file_loader.cpp b/Telegram/SourceFiles/mtproto/dedicated_file_loader.cpp index ab65b0b17..b66eb6f44 100644 --- a/Telegram/SourceFiles/mtproto/dedicated_file_loader.cpp +++ b/Telegram/SourceFiles/mtproto/dedicated_file_loader.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "core/application.h" #include "main/main_account.h" // Account::sessionChanges. +#include "facades.h" namespace MTP { namespace { diff --git a/Telegram/SourceFiles/mtproto/mtp_instance.cpp b/Telegram/SourceFiles/mtproto/mtp_instance.cpp index 84267dd9a..c51ea664b 100644 --- a/Telegram/SourceFiles/mtproto/mtp_instance.cpp +++ b/Telegram/SourceFiles/mtproto/mtp_instance.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_instance.h" #include "lang/lang_cloud_manager.h" #include "base/timer.h" +#include "facades.h" namespace MTP { namespace { diff --git a/Telegram/SourceFiles/mtproto/session.cpp b/Telegram/SourceFiles/mtproto/session.cpp index 4b71becef..f6f381f05 100644 --- a/Telegram/SourceFiles/mtproto/session.cpp +++ b/Telegram/SourceFiles/mtproto/session.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/auth_key.h" #include "base/unixtime.h" #include "core/crash_reports.h" +#include "facades.h" namespace MTP { namespace internal { diff --git a/Telegram/SourceFiles/mtproto/session.h b/Telegram/SourceFiles/mtproto/session.h index bfcb12965..061bac330 100644 --- a/Telegram/SourceFiles/mtproto/session.h +++ b/Telegram/SourceFiles/mtproto/session.h @@ -10,6 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer.h" #include "mtproto/rpc_sender.h" +#include + namespace MTP { class Instance; diff --git a/Telegram/SourceFiles/mtproto/special_config_request.cpp b/Telegram/SourceFiles/mtproto/special_config_request.cpp index 376ca9964..b9a1b9513 100644 --- a/Telegram/SourceFiles/mtproto/special_config_request.cpp +++ b/Telegram/SourceFiles/mtproto/special_config_request.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/auth_key.h" #include "base/unixtime.h" #include "base/openssl_help.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/observer_peer.cpp b/Telegram/SourceFiles/observer_peer.cpp index ff1d0f1cf..158606cd1 100644 --- a/Telegram/SourceFiles/observer_peer.cpp +++ b/Telegram/SourceFiles/observer_peer.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "observer_peer.h" #include "base/observer.h" +#include "facades.h" namespace Notify { namespace { diff --git a/Telegram/SourceFiles/overview/overview_layout.cpp b/Telegram/SourceFiles/overview/overview_layout.cpp index d865a6e44..24b886764 100644 --- a/Telegram/SourceFiles/overview/overview_layout.cpp +++ b/Telegram/SourceFiles/overview/overview_layout.cpp @@ -32,6 +32,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/round_checkbox.h" #include "ui/image/image.h" #include "ui/text_options.h" +#include "app.h" namespace Overview { namespace Layout { @@ -829,12 +830,12 @@ void Voice::updateName() { auto version = 0; if (const auto forwarded = parent()->Get()) { if (parent()->fromOriginal()->isChannel()) { - _name.setText(st::semiboldTextStyle, tr::lng_forwarded_channel(tr::now, lt_channel, App::peerName(parent()->fromOriginal())), Ui::NameTextOptions()); + _name.setText(st::semiboldTextStyle, tr::lng_forwarded_channel(tr::now, lt_channel, parent()->fromOriginal()->name), Ui::NameTextOptions()); } else { - _name.setText(st::semiboldTextStyle, tr::lng_forwarded(tr::now, lt_user, App::peerName(parent()->fromOriginal())), Ui::NameTextOptions()); + _name.setText(st::semiboldTextStyle, tr::lng_forwarded(tr::now, lt_user, parent()->fromOriginal()->name), Ui::NameTextOptions()); } } else { - _name.setText(st::semiboldTextStyle, App::peerName(parent()->from()), Ui::NameTextOptions()); + _name.setText(st::semiboldTextStyle, parent()->from()->name, Ui::NameTextOptions()); } version = parent()->fromOriginal()->nameVersion; _nameVersion = version; diff --git a/Telegram/SourceFiles/passport/passport_form_controller.cpp b/Telegram/SourceFiles/passport/passport_form_controller.cpp index d68f556ac..f93469df8 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_controller.cpp @@ -28,6 +28,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localstorage.h" #include "storage/file_upload.h" #include "storage/file_download.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/passport/passport_panel.h b/Telegram/SourceFiles/passport/passport_panel.h index c9186327b..aa4ccb723 100644 --- a/Telegram/SourceFiles/passport/passport_panel.h +++ b/Telegram/SourceFiles/passport/passport_panel.h @@ -7,6 +7,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +#include "window/layer_widget.h" + +class BoxContent; + namespace Ui { class RpWidget; class SeparatePanel; diff --git a/Telegram/SourceFiles/passport/passport_panel_controller.cpp b/Telegram/SourceFiles/passport/passport_panel_controller.cpp index bd22ba3d7..11d29c3e8 100644 --- a/Telegram/SourceFiles/passport/passport_panel_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_controller.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/update_checker.h" #include "data/data_countries.h" #include "layout.h" +#include "app.h" #include "styles/style_boxes.h" namespace Passport { diff --git a/Telegram/SourceFiles/passport/passport_panel_edit_contact.cpp b/Telegram/SourceFiles/passport/passport_panel_edit_contact.cpp index eb966d68b..863a3b42f 100644 --- a/Telegram/SourceFiles/passport/passport_panel_edit_contact.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_edit_contact.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "main/main_session.h" #include "lang/lang_keys.h" +#include "app.h" #include "styles/style_passport.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/passport/passport_panel_edit_contact.h b/Telegram/SourceFiles/passport/passport_panel_edit_contact.h index 02018d4a6..cf657463a 100644 --- a/Telegram/SourceFiles/passport/passport_panel_edit_contact.h +++ b/Telegram/SourceFiles/passport/passport_panel_edit_contact.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/rp_widget.h" +class BoxContent; + namespace Ui { class MaskedInputField; class PlainShadow; diff --git a/Telegram/SourceFiles/passport/passport_panel_edit_document.h b/Telegram/SourceFiles/passport/passport_panel_edit_document.h index c456084d2..22ef459fd 100644 --- a/Telegram/SourceFiles/passport/passport_panel_edit_document.h +++ b/Telegram/SourceFiles/passport/passport_panel_edit_document.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/rp_widget.h" +class BoxContent; + namespace Ui { class InputField; class ScrollArea; diff --git a/Telegram/SourceFiles/passport/passport_panel_edit_scans.cpp b/Telegram/SourceFiles/passport/passport_panel_edit_scans.cpp index 6cdddd157..eed994090 100644 --- a/Telegram/SourceFiles/passport/passport_panel_edit_scans.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_edit_scans.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/abstract_box.h" #include "storage/storage_media_prepare.h" #include "storage/file_upload.h" // For Storage::kUseBigFilesFrom. +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_passport.h" diff --git a/Telegram/SourceFiles/passport/passport_panel_form.cpp b/Telegram/SourceFiles/passport/passport_panel_form.cpp index b554d4563..9db860a3c 100644 --- a/Telegram/SourceFiles/passport/passport_panel_form.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_form.cpp @@ -232,7 +232,7 @@ not_null PanelForm::setupContent() { inner, object_ptr( inner, - tr::lng_passport_request1(tr::now, lt_bot, App::peerName(bot)), + tr::lng_passport_request1(tr::now, lt_bot, bot->name), st::passportPasswordLabelBold)), st::passportFormAbout1Padding)->entity(); @@ -301,7 +301,7 @@ not_null PanelForm::setupContent() { lt_policy, tr::lng_passport_policy( lt_bot, - rpl::single(App::peerName(bot)) + rpl::single(bot->name) ) | Ui::Text::ToLink(policyUrl), lt_bot, rpl::single('@' + bot->username) | Ui::Text::ToWithEntities(), diff --git a/Telegram/SourceFiles/passport/passport_panel_password.cpp b/Telegram/SourceFiles/passport/passport_panel_password.cpp index b4b12cad2..7b75f9f05 100644 --- a/Telegram/SourceFiles/passport/passport_panel_password.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_password.cpp @@ -38,7 +38,7 @@ PanelAskPassword::PanelAskPassword( tr::lng_passport_request1( tr::now, lt_bot, - App::peerName(_controller->bot())), + _controller->bot()->name), st::passportPasswordLabelBold) , _about2( this, @@ -179,7 +179,7 @@ void PanelNoPassword::setupContent() { tr::lng_passport_request1( tr::now, lt_bot, - App::peerName(_controller->bot())), + _controller->bot()->name), st::passportPasswordLabelBold)), st::passportPasswordAbout1Padding)->entity(); diff --git a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp index 17dda4e49..9a2fbb2e0 100644 --- a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp @@ -12,7 +12,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/linux/linux_gdk_helper.h" #include "core/application.h" #include "mainwindow.h" +#include "boxes/abstract_box.h" #include "storage/localstorage.h" +#include "facades.h" #include diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp index 9ee34beed..0a2cad531 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -16,6 +16,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "lang/lang_keys.h" #include "storage/localstorage.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.h b/Telegram/SourceFiles/platform/linux/main_window_linux.h index 8d9228085..cea307c5e 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.h +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_main_window.h" +#include + namespace Platform { class MainWindow : public Window::MainWindow { diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp index 3dad9e9d9..0248e9152 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/linux/linux_libs.h" #include "history/history.h" #include "lang/lang_keys.h" +#include "facades.h" namespace Platform { namespace Notifications { diff --git a/Telegram/SourceFiles/platform/mac/mac_touchbar.mm b/Telegram/SourceFiles/platform/mac/mac_touchbar.mm index 93c3b50df..641b7a9d5 100644 --- a/Telegram/SourceFiles/platform/mac/mac_touchbar.mm +++ b/Telegram/SourceFiles/platform/mac/mac_touchbar.mm @@ -37,6 +37,8 @@ #include "window/window_session_controller.h" #include "ui/empty_userpic.h" #include "ui/widgets/input_fields.h" +#include "facades.h" +#include "app.h" NSImage *qt_mac_create_nsimage(const QPixmap &pm); diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.h b/Telegram/SourceFiles/platform/mac/main_window_mac.h index 6d2565e57..967ea8168 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.h +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.h @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer.h" #include +#include namespace Platform { diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.mm b/Telegram/SourceFiles/platform/mac/main_window_mac.mm index 591fb6fd5..83ff560bf 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.mm +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.mm @@ -32,6 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "platform/mac/mac_utilities.h" #include "ui/widgets/input_fields.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm b/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm index cca6b0a6c..25727ac17 100644 --- a/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm +++ b/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history.h" #include "ui/empty_userpic.h" #include "mainwindow.h" +#include "facades.h" #include "styles/style_window.h" #include diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.mm b/Telegram/SourceFiles/platform/mac/specific_mac.mm index ceada8d4e..a3a9f5fbe 100644 --- a/Telegram/SourceFiles/platform/mac/specific_mac.mm +++ b/Telegram/SourceFiles/platform/mac/specific_mac.mm @@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "history/history_location_manager.h" #include "platform/mac/mac_utilities.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/platform/mac/window_title_mac.mm b/Telegram/SourceFiles/platform/mac/window_title_mac.mm index 522514b13..6ce64034f 100644 --- a/Telegram/SourceFiles/platform/mac/window_title_mac.mm +++ b/Telegram/SourceFiles/platform/mac/window_title_mac.mm @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_window.h" #include "styles/style_mediaview.h" #include "platform/platform_main_window.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/platform/win/file_utilities_win.cpp b/Telegram/SourceFiles/platform/win/file_utilities_win.cpp index e40b88ec4..a2bf9710c 100644 --- a/Telegram/SourceFiles/platform/win/file_utilities_win.cpp +++ b/Telegram/SourceFiles/platform/win/file_utilities_win.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "core/application.h" #include "core/crash_reports.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/platform/win/main_window_win.cpp b/Telegram/SourceFiles/platform/win/main_window_win.cpp index 1941d4e68..0e8215efd 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.cpp +++ b/Telegram/SourceFiles/platform/win/main_window_win.cpp @@ -19,6 +19,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/popup_menu.h" #include "window/themes/window_theme.h" #include "history/history.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/platform/win/main_window_win.h b/Telegram/SourceFiles/platform/win/main_window_win.h index c8bd437b8..87d3422ee 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.h +++ b/Telegram/SourceFiles/platform/win/main_window_win.h @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/win/wrapper_windows_h.h" #include "base/flags.h" +#include + namespace Ui { class PopupMenu; } // namespace Ui diff --git a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp index bad199790..1d0e01d61 100644 --- a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp +++ b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/win/windows_dlls.h" #include "history/history.h" #include "mainwindow.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/platform/win/windows_event_filter.cpp b/Telegram/SourceFiles/platform/win/windows_event_filter.cpp index c3024d1c2..395674a2f 100644 --- a/Telegram/SourceFiles/platform/win/windows_event_filter.cpp +++ b/Telegram/SourceFiles/platform/win/windows_event_filter.cpp @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/sandbox.h" #include "mainwindow.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/profile/profile_back_button.cpp b/Telegram/SourceFiles/profile/profile_back_button.cpp index 5c8eef547..d18bf5f95 100644 --- a/Telegram/SourceFiles/profile/profile_back_button.cpp +++ b/Telegram/SourceFiles/profile/profile_back_button.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "profile/profile_back_button.h" //#include "history/view/history_view_top_bar_widget.h" +#include "facades.h" #include "styles/style_widgets.h" #include "styles/style_window.h" #include "styles/style_profile.h" diff --git a/Telegram/SourceFiles/profile/profile_block_group_members.cpp b/Telegram/SourceFiles/profile/profile_block_group_members.cpp index affd74544..15199b13c 100644 --- a/Telegram/SourceFiles/profile/profile_block_group_members.cpp +++ b/Telegram/SourceFiles/profile/profile_block_group_members.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "observer_peer.h" #include "main/main_session.h" #include "lang/lang_keys.h" +#include "facades.h" namespace Profile { namespace { diff --git a/Telegram/SourceFiles/profile/profile_block_group_members.h b/Telegram/SourceFiles/profile/profile_block_group_members.h index 99c791a39..a00d6b7e0 100644 --- a/Telegram/SourceFiles/profile/profile_block_group_members.h +++ b/Telegram/SourceFiles/profile/profile_block_group_members.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "profile/profile_block_peer_list.h" +#include + namespace Ui { class FlatLabel; } // namespace Ui diff --git a/Telegram/SourceFiles/profile/profile_block_peer_list.cpp b/Telegram/SourceFiles/profile/profile_block_peer_list.cpp index a57b8ffb6..f18cc724a 100644 --- a/Telegram/SourceFiles/profile/profile_block_peer_list.cpp +++ b/Telegram/SourceFiles/profile/profile_block_peer_list.cpp @@ -89,7 +89,7 @@ void PeerListWidget::paintItem(Painter &p, int x, int y, Item *item, bool select if (item->name.isEmpty()) { item->name.setText( st::msgNameStyle, - App::peerName(item->peer), + item->peer->name, Ui::NameTextOptions()); } int nameLeft = x + _st.namePosition.x(); diff --git a/Telegram/SourceFiles/settings/settings_advanced.cpp b/Telegram/SourceFiles/settings/settings_advanced.cpp index b55831161..0da98cd4f 100644 --- a/Telegram/SourceFiles/settings/settings_advanced.cpp +++ b/Telegram/SourceFiles/settings/settings_advanced.cpp @@ -28,6 +28,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "main/main_session.h" #include "layout.h" +#include "facades.h" +#include "app.h" #include "styles/style_settings.h" namespace Settings { diff --git a/Telegram/SourceFiles/settings/settings_calls.cpp b/Telegram/SourceFiles/settings/settings_calls.cpp index 7d6204f9c..dbc549bcb 100644 --- a/Telegram/SourceFiles/settings/settings_calls.cpp +++ b/Telegram/SourceFiles/settings/settings_calls.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/continuous_sliders.h" #include "window/window_session_controller.h" #include "calls/calls_instance.h" +#include "facades.h" #ifdef slots #undef slots diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index 50eddd5ce..ca0fe6e28 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -47,6 +47,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "mainwidget.h" #include "mainwindow.h" +#include "facades.h" +#include "app.h" #include "styles/style_settings.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/settings/settings_codes.cpp b/Telegram/SourceFiles/settings/settings_codes.cpp index fcbbd9dd5..a97f13942 100644 --- a/Telegram/SourceFiles/settings/settings_codes.cpp +++ b/Telegram/SourceFiles/settings/settings_codes.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "window/themes/window_theme_editor.h" #include "media/audio/media_audio_track.h" +#include "facades.h" namespace Settings { diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp index f0984185e..6522ef459 100644 --- a/Telegram/SourceFiles/settings/settings_information.cpp +++ b/Telegram/SourceFiles/settings/settings_information.cpp @@ -29,6 +29,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_session_controller.h" #include "apiwrap.h" #include "core/file_utilities.h" +#include "facades.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_settings.h" diff --git a/Telegram/SourceFiles/settings/settings_intro.cpp b/Telegram/SourceFiles/settings/settings_intro.cpp index 7897ee5f1..82e6b4349 100644 --- a/Telegram/SourceFiles/settings/settings_intro.cpp +++ b/Telegram/SourceFiles/settings/settings_intro.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/scroll_area.h" #include "lang/lang_keys.h" +#include "app.h" #include "styles/style_settings.h" #include "styles/style_boxes.h" #include "styles/style_info.h" diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp index f1affc42f..daa1f033b 100644 --- a/Telegram/SourceFiles/settings/settings_main.cpp +++ b/Telegram/SourceFiles/settings/settings_main.cpp @@ -27,6 +27,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "window/window_session_controller.h" #include "core/file_utilities.h" +#include "facades.h" +#include "app.h" #include "styles/style_settings.h" #include diff --git a/Telegram/SourceFiles/settings/settings_notifications.cpp b/Telegram/SourceFiles/settings/settings_notifications.cpp index 71ded811c..aa56bfaf9 100644 --- a/Telegram/SourceFiles/settings/settings_notifications.cpp +++ b/Telegram/SourceFiles/settings/settings_notifications.cpp @@ -25,6 +25,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "main/main_session.h" #include "apiwrap.h" +#include "facades.h" +#include "app.h" #include "styles/style_settings.h" #include "styles/style_boxes.h" #include "styles/style_window.h" diff --git a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp index e8a32c9fd..5477c78e7 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_controllers.cpp @@ -34,6 +34,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/peer_list_controllers.h" #include "boxes/confirm_box.h" #include "settings/settings_privacy_security.h" +#include "facades.h" +#include "app.h" #include "styles/style_history.h" #include "styles/style_boxes.h" #include "styles/style_settings.h" @@ -797,7 +799,7 @@ void ForwardsPrivacyController::PaintForwardedTooltip( const auto phrase = tr::lng_forwarded( tr::now, lt_user, - App::peerName(view->data()->history()->session().user())); + view->data()->history()->session().user()->name); const auto kReplacementPosition = QChar(0x0001); const auto possiblePosition = tr::lng_forwarded( tr::now, diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index 043bb29ab..6ac954ede 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "window/window_session_controller.h" #include "apiwrap.h" +#include "facades.h" #include "styles/style_settings.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.h b/Telegram/SourceFiles/settings/settings_privacy_security.h index 13291ead7..4853e88bc 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.h +++ b/Telegram/SourceFiles/settings/settings_privacy_security.h @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" class EditPrivacyController; +class BoxContent; namespace Settings { diff --git a/Telegram/SourceFiles/stdafx.h b/Telegram/SourceFiles/stdafx.h index 27140be7f..0498e0fdf 100644 --- a/Telegram/SourceFiles/stdafx.h +++ b/Telegram/SourceFiles/stdafx.h @@ -116,6 +116,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/flat_set.h" #include "base/flat_map.h" #include "base/weak_ptr.h" +#include "base/observer.h" #include "base/basic_types.h" #include "logs.h" @@ -128,13 +129,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/palette.h" #include "styles/style_basic.h" -#include "ui/animation.h" #include "ui/twidget.h" #include "ui/image/image_location.h" #include "ui/text/text.h" #include "data/data_types.h" -#include "app.h" -#include "facades.h" #endif // __cplusplus diff --git a/Telegram/SourceFiles/storage/file_download.cpp b/Telegram/SourceFiles/storage/file_download.cpp index 2c02be5a0..caf550dff 100644 --- a/Telegram/SourceFiles/storage/file_download.cpp +++ b/Telegram/SourceFiles/storage/file_download.cpp @@ -21,6 +21,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/crash_reports.h" #include "base/bytes.h" #include "base/openssl_help.h" +#include "facades.h" +#include "app.h" namespace Storage { namespace { diff --git a/Telegram/SourceFiles/storage/file_upload.h b/Telegram/SourceFiles/storage/file_upload.h index 4385cd58f..df6f3bc2c 100644 --- a/Telegram/SourceFiles/storage/file_upload.h +++ b/Telegram/SourceFiles/storage/file_upload.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_common.h" +#include + class ApiWrap; struct FileLoadResult; struct SendMediaReady; diff --git a/Telegram/SourceFiles/storage/localimageloader.cpp b/Telegram/SourceFiles/storage/localimageloader.cpp index 28da2fc8a..ab64ae5c1 100644 --- a/Telegram/SourceFiles/storage/localimageloader.cpp +++ b/Telegram/SourceFiles/storage/localimageloader.cpp @@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "mainwindow.h" #include "main/main_session.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/storage/localstorage.cpp b/Telegram/SourceFiles/storage/localstorage.cpp index 3bb20a0b4..f4690977e 100644 --- a/Telegram/SourceFiles/storage/localstorage.cpp +++ b/Telegram/SourceFiles/storage/localstorage.cpp @@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/flags.h" #include "data/data_session.h" #include "history/history.h" +#include "facades.h" #include #include diff --git a/Telegram/SourceFiles/storage/localstorage.h b/Telegram/SourceFiles/storage/localstorage.h index 6d7641ca0..d75ce8a75 100644 --- a/Telegram/SourceFiles/storage/localstorage.h +++ b/Telegram/SourceFiles/storage/localstorage.h @@ -12,6 +12,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localimageloader.h" #include "main/main_session.h" +#include + +class History; + namespace Data { class WallPaper; } // namespace Data diff --git a/Telegram/SourceFiles/storage/serialize_common.cpp b/Telegram/SourceFiles/storage/serialize_common.cpp index 00ed57147..ad8aadc07 100644 --- a/Telegram/SourceFiles/storage/serialize_common.cpp +++ b/Telegram/SourceFiles/storage/serialize_common.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_user.h" #include "data/data_session.h" #include "ui/image/image.h" +#include "app.h" namespace Serialize { namespace { diff --git a/Telegram/SourceFiles/storage/storage_media_prepare.cpp b/Telegram/SourceFiles/storage/storage_media_prepare.cpp index b3bfe3f4b..dbefcaf23 100644 --- a/Telegram/SourceFiles/storage/storage_media_prepare.cpp +++ b/Telegram/SourceFiles/storage/storage_media_prepare.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/localimageloader.h" #include "core/mime_type.h" #include "ui/image/image_prepare.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/support/support_autocomplete.cpp b/Telegram/SourceFiles/support/support_autocomplete.cpp index fc5afd8b3..22f295a87 100644 --- a/Telegram/SourceFiles/support/support_autocomplete.cpp +++ b/Telegram/SourceFiles/support/support_autocomplete.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "main/main_session.h" #include "apiwrap.h" +#include "facades.h" #include "styles/style_chat_helpers.h" #include "styles/style_window.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/support/support_helper.cpp b/Telegram/SourceFiles/support/support_helper.cpp index fe5cce24a..e2ec406f5 100644 --- a/Telegram/SourceFiles/support/support_helper.cpp +++ b/Telegram/SourceFiles/support/support_helper.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "observer_peer.h" #include "apiwrap.h" +#include "facades.h" #include "styles/style_boxes.h" namespace Main { diff --git a/Telegram/SourceFiles/support/support_helper.h b/Telegram/SourceFiles/support/support_helper.h index e26c3e1ac..e3cde4971 100644 --- a/Telegram/SourceFiles/support/support_helper.h +++ b/Telegram/SourceFiles/support/support_helper.h @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "support/support_templates.h" #include "mtproto/sender.h" +class History; + namespace Main { class Session; } // namespace Main diff --git a/Telegram/SourceFiles/ui/animation.cpp b/Telegram/SourceFiles/ui/effects/animation_value.cpp similarity index 88% rename from Telegram/SourceFiles/ui/animation.cpp rename to Telegram/SourceFiles/ui/effects/animation_value.cpp index febd37450..2cdebadd3 100644 --- a/Telegram/SourceFiles/ui/animation.cpp +++ b/Telegram/SourceFiles/ui/effects/animation_value.cpp @@ -5,33 +5,15 @@ the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ -#include "animation.h" - -#include "media/clip/media_clip_reader.h" - -namespace Media { -namespace Clip { - -Reader *const ReaderPointer::BadPointer = SharedMemoryLocation(); - -ReaderPointer::~ReaderPointer() { - if (valid()) { - delete _pointer; - } - _pointer = nullptr; -} - -} // namespace Clip -} // namespace Media +#include "ui/effects/animation_value.h" +namespace anim { namespace { bool AnimationsDisabled = false; } // namespace -namespace anim { - transition linear = [](const float64 &delta, const float64 &dt) { return delta * dt; }; diff --git a/Telegram/SourceFiles/ui/animation.h b/Telegram/SourceFiles/ui/effects/animation_value.h similarity index 86% rename from Telegram/SourceFiles/ui/animation.h rename to Telegram/SourceFiles/ui/effects/animation_value.h index bfc4acb4f..e9e6a06f8 100644 --- a/Telegram/SourceFiles/ui/animation.h +++ b/Telegram/SourceFiles/ui/effects/animation_value.h @@ -7,78 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once -#include -#include -#include "base/binary_guard.h" -#include "base/flat_set.h" - -namespace Media { -namespace Clip { - -class Reader; -class ReaderPointer { -public: - ReaderPointer(std::nullptr_t = nullptr) { - } - explicit ReaderPointer(Reader *pointer) : _pointer(pointer) { - } - ReaderPointer(const ReaderPointer &other) = delete; - ReaderPointer &operator=(const ReaderPointer &other) = delete; - ReaderPointer(ReaderPointer &&other) : _pointer(base::take(other._pointer)) { - } - ReaderPointer &operator=(ReaderPointer &&other) { - swap(other); - return *this; - } - void swap(ReaderPointer &other) { - qSwap(_pointer, other._pointer); - } - Reader *get() const { - return valid() ? _pointer : nullptr; - } - Reader *operator->() const { - return get(); - } - void setBad() { - reset(); - _pointer = BadPointer; - } - void reset() { - ReaderPointer temp; - swap(temp); - } - bool isBad() const { - return (_pointer == BadPointer); - } - bool valid() const { - return _pointer && !isBad(); - } - explicit operator bool() const { - return valid(); - } - static inline ReaderPointer Bad() { - ReaderPointer result; - result.setBad(); - return result; - } - ~ReaderPointer(); - -private: - Reader *_pointer = nullptr; - static Reader *const BadPointer; - -}; - -class Manager; - -enum Notification { - NotificationReinit, - NotificationRepaint, -}; - -} // namespace Clip -} // namespace Media - namespace anim { enum class type { @@ -422,17 +350,3 @@ void DrawStaticLoading( QBrush brush = Qt::NoBrush); }; - -class AnimationManager : public QObject { -public: - AnimationManager(); - - void registerClip(not_null clip); - -private: - void clipCallback( - Media::Clip::Reader *reader, - qint32 threadIndex, - qint32 notification); - -}; diff --git a/Telegram/SourceFiles/ui/effects/animations.h b/Telegram/SourceFiles/ui/effects/animations.h index 96bf6e511..2b7e14750 100644 --- a/Telegram/SourceFiles/ui/effects/animations.h +++ b/Telegram/SourceFiles/ui/effects/animations.h @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +#include "ui/effects/animation_value.h" + namespace Ui { namespace Animations { diff --git a/Telegram/SourceFiles/ui/effects/cross_animation.cpp b/Telegram/SourceFiles/ui/effects/cross_animation.cpp index f8ef91527..962e7bc0b 100644 --- a/Telegram/SourceFiles/ui/effects/cross_animation.cpp +++ b/Telegram/SourceFiles/ui/effects/cross_animation.cpp @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/effects/cross_animation.h" +#include "ui/effects/animation_value.h" + namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ui/effects/fade_animation.cpp b/Telegram/SourceFiles/ui/effects/fade_animation.cpp index a4ac01c7c..2ec5caca8 100644 --- a/Telegram/SourceFiles/ui/effects/fade_animation.cpp +++ b/Telegram/SourceFiles/ui/effects/fade_animation.cpp @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/effects/fade_animation.h" +#include "app.h" + namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ui/effects/panel_animation.cpp b/Telegram/SourceFiles/ui/effects/panel_animation.cpp index 594ee2988..b9432c973 100644 --- a/Telegram/SourceFiles/ui/effects/panel_animation.cpp +++ b/Telegram/SourceFiles/ui/effects/panel_animation.cpp @@ -7,6 +7,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/effects/panel_animation.h" +#include "ui/effects/animation_value.h" +#include "app.h" + namespace Ui { void RoundShadowAnimation::start(int frameWidth, int frameHeight, float64 devicePixelRatio) { diff --git a/Telegram/SourceFiles/ui/effects/ripple_animation.cpp b/Telegram/SourceFiles/ui/effects/ripple_animation.cpp index cb6e2d810..28ab3596e 100644 --- a/Telegram/SourceFiles/ui/effects/ripple_animation.cpp +++ b/Telegram/SourceFiles/ui/effects/ripple_animation.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/ripple_animation.h" #include "ui/effects/animations.h" +#include "app.h" namespace Ui { diff --git a/Telegram/SourceFiles/ui/effects/round_checkbox.cpp b/Telegram/SourceFiles/ui/effects/round_checkbox.cpp index a02258f7a..239bd407f 100644 --- a/Telegram/SourceFiles/ui/effects/round_checkbox.cpp +++ b/Telegram/SourceFiles/ui/effects/round_checkbox.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "ui/rp_widget.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/ui/effects/send_action_animations.cpp b/Telegram/SourceFiles/ui/effects/send_action_animations.cpp index 8842aa55c..64ed0e436 100644 --- a/Telegram/SourceFiles/ui/effects/send_action_animations.cpp +++ b/Telegram/SourceFiles/ui/effects/send_action_animations.cpp @@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/effects/send_action_animations.h" +#include "ui/effects/animation_value.h" #include "styles/style_widgets.h" namespace Ui { diff --git a/Telegram/SourceFiles/ui/emoji_config.cpp b/Telegram/SourceFiles/ui/emoji_config.cpp index 896a25fcf..a7c1eaaa4 100644 --- a/Telegram/SourceFiles/ui/emoji_config.cpp +++ b/Telegram/SourceFiles/ui/emoji_config.cpp @@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/openssl_help.h" #include "base/parse_helper.h" #include "main/main_session.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/ui/empty_userpic.cpp b/Telegram/SourceFiles/ui/empty_userpic.cpp index 5acd0c9df..11a703cf8 100644 --- a/Telegram/SourceFiles/ui/empty_userpic.cpp +++ b/Telegram/SourceFiles/ui/empty_userpic.cpp @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_peer.h" #include "ui/emoji_config.h" +#include "ui/effects/animation_value.h" +#include "app.h" #include "styles/style_history.h" namespace Ui { diff --git a/Telegram/SourceFiles/ui/image/image.cpp b/Telegram/SourceFiles/ui/image/image.cpp index 868febf2d..559e0e9b5 100644 --- a/Telegram/SourceFiles/ui/image/image.cpp +++ b/Telegram/SourceFiles/ui/image/image.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_file_origin.h" #include "chat_helpers/stickers.h" #include "main/main_session.h" +#include "app.h" using namespace Images; diff --git a/Telegram/SourceFiles/ui/image/image_prepare.cpp b/Telegram/SourceFiles/ui/image/image_prepare.cpp index 7195de55d..a0b6f4b5c 100644 --- a/Telegram/SourceFiles/ui/image/image_prepare.cpp +++ b/Telegram/SourceFiles/ui/image/image_prepare.cpp @@ -7,6 +7,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/image/image_prepare.h" +#include "ui/effects/animation_value.h" +#include "facades.h" +#include "app.h" + namespace Images { namespace { diff --git a/Telegram/SourceFiles/ui/image/image_source.cpp b/Telegram/SourceFiles/ui/image/image_source.cpp index 2299c355d..f8246ec05 100644 --- a/Telegram/SourceFiles/ui/image/image_source.cpp +++ b/Telegram/SourceFiles/ui/image/image_source.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_item.h" #include "history/history.h" #include "main/main_session.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/ui/special_buttons.cpp b/Telegram/SourceFiles/ui/special_buttons.cpp index 0fc52e764..425ac9263 100644 --- a/Telegram/SourceFiles/ui/special_buttons.cpp +++ b/Telegram/SourceFiles/ui/special_buttons.cpp @@ -29,6 +29,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "apiwrap.h" #include "mainwidget.h" #include "observer_peer.h" +#include "facades.h" +#include "app.h" namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ui/style/style_core.cpp b/Telegram/SourceFiles/ui/style/style_core.cpp index 81c61147b..f55ce2d7b 100644 --- a/Telegram/SourceFiles/ui/style/style_core.cpp +++ b/Telegram/SourceFiles/ui/style/style_core.cpp @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/style/style_core.h" +#include "ui/effects/animation_value.h" + namespace style { namespace internal { namespace { diff --git a/Telegram/SourceFiles/ui/style/style_core_icon.cpp b/Telegram/SourceFiles/ui/style/style_core_icon.cpp index 3a26d7e37..e124f711f 100644 --- a/Telegram/SourceFiles/ui/style/style_core_icon.cpp +++ b/Telegram/SourceFiles/ui/style/style_core_icon.cpp @@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/style/style_core_icon.h" +#include "app.h" + namespace style { namespace internal { namespace { diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp index 4a46dab03..9a1dc5ae1 100644 --- a/Telegram/SourceFiles/ui/text/text.cpp +++ b/Telegram/SourceFiles/ui/text/text.cpp @@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_info.h" #include "boxes/confirm_box.h" #include "mainwindow.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp index c7b3fdead..b49a126b6 100644 --- a/Telegram/SourceFiles/ui/text/text_block.cpp +++ b/Telegram/SourceFiles/ui/text/text_block.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/text/text_block.h" #include "core/crash_reports.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/ui/text_options.h b/Telegram/SourceFiles/ui/text_options.h index 72135c7bc..fe84377b6 100644 --- a/Telegram/SourceFiles/ui/text_options.h +++ b/Telegram/SourceFiles/ui/text_options.h @@ -7,6 +7,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +class History; +class PeerData; + namespace Ui { void InitTextOptions(); diff --git a/Telegram/SourceFiles/ui/toast/toast_widget.cpp b/Telegram/SourceFiles/ui/toast/toast_widget.cpp index b1e4ec7af..175bf2fda 100644 --- a/Telegram/SourceFiles/ui/toast/toast_widget.cpp +++ b/Telegram/SourceFiles/ui/toast/toast_widget.cpp @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/toast/toast_widget.h" #include "ui/image/image_prepare.h" +#include "app.h" namespace Ui { namespace Toast { diff --git a/Telegram/SourceFiles/ui/widgets/buttons.cpp b/Telegram/SourceFiles/ui/widgets/buttons.cpp index d002c3d0d..df9a252b6 100644 --- a/Telegram/SourceFiles/ui/widgets/buttons.cpp +++ b/Telegram/SourceFiles/ui/widgets/buttons.cpp @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image_prepare.h" #include "window/themes/window_theme.h" #include "lang/lang_instance.h" +#include "app.h" namespace Ui { diff --git a/Telegram/SourceFiles/ui/widgets/checkbox.cpp b/Telegram/SourceFiles/ui/widgets/checkbox.cpp index d075bf9e9..b6521fd8e 100644 --- a/Telegram/SourceFiles/ui/widgets/checkbox.cpp +++ b/Telegram/SourceFiles/ui/widgets/checkbox.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "ui/effects/ripple_animation.h" +#include "app.h" namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ui/widgets/inner_dropdown.cpp b/Telegram/SourceFiles/ui/widgets/inner_dropdown.cpp index 652e4243c..e9d2d8035 100644 --- a/Telegram/SourceFiles/ui/widgets/inner_dropdown.cpp +++ b/Telegram/SourceFiles/ui/widgets/inner_dropdown.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/shadow.h" #include "ui/effects/panel_animation.h" #include "ui/image/image_prepare.h" +#include "app.h" namespace { diff --git a/Telegram/SourceFiles/ui/widgets/inner_dropdown.h b/Telegram/SourceFiles/ui/widgets/inner_dropdown.h index 862ae04eb..a081b5a58 100644 --- a/Telegram/SourceFiles/ui/widgets/inner_dropdown.h +++ b/Telegram/SourceFiles/ui/widgets/inner_dropdown.h @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/animations.h" #include "ui/effects/panel_animation.h" +#include + namespace Ui { class ScrollArea; diff --git a/Telegram/SourceFiles/ui/widgets/input_fields.cpp b/Telegram/SourceFiles/ui/widgets/input_fields.cpp index 7c05d7ec2..1bbf31577 100644 --- a/Telegram/SourceFiles/ui/widgets/input_fields.cpp +++ b/Telegram/SourceFiles/ui/widgets/input_fields.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "numbers.h" #include "main/main_session.h" #include "core/application.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/ui/widgets/input_fields.h b/Telegram/SourceFiles/ui/widgets/input_fields.h index 3839304c8..d15762d2d 100644 --- a/Telegram/SourceFiles/ui/widgets/input_fields.h +++ b/Telegram/SourceFiles/ui/widgets/input_fields.h @@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include +#include class UserData; diff --git a/Telegram/SourceFiles/ui/widgets/labels.cpp b/Telegram/SourceFiles/ui/widgets/labels.cpp index 9e86529d9..691c318e3 100644 --- a/Telegram/SourceFiles/ui/widgets/labels.cpp +++ b/Telegram/SourceFiles/ui/widgets/labels.cpp @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "chat_helpers/message_field.h" // SetClipboardText/MimeDataFromText #include "mainwindow.h" #include "lang/lang_keys.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/ui/widgets/labels.h b/Telegram/SourceFiles/ui/widgets/labels.h index 7741992c3..bb6474d98 100644 --- a/Telegram/SourceFiles/ui/widgets/labels.h +++ b/Telegram/SourceFiles/ui/widgets/labels.h @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "boxes/abstract_box.h" #include "styles/style_widgets.h" +#include + namespace Ui { class PopupMenu; diff --git a/Telegram/SourceFiles/ui/widgets/multi_select.cpp b/Telegram/SourceFiles/ui/widgets/multi_select.cpp index 9e3e5dd3d..4b6b23a6b 100644 --- a/Telegram/SourceFiles/ui/widgets/multi_select.cpp +++ b/Telegram/SourceFiles/ui/widgets/multi_select.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/effects/cross_animation.h" #include "ui/text_options.h" #include "lang/lang_keys.h" +#include "app.h" namespace Ui { namespace { diff --git a/Telegram/SourceFiles/ui/widgets/popup_menu.cpp b/Telegram/SourceFiles/ui/widgets/popup_menu.cpp index e78af60a3..8476c583d 100644 --- a/Telegram/SourceFiles/ui/widgets/popup_menu.cpp +++ b/Telegram/SourceFiles/ui/widgets/popup_menu.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "core/application.h" #include "lang/lang_keys.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/ui/widgets/scroll_area.h b/Telegram/SourceFiles/ui/widgets/scroll_area.h index 3c9aafebb..f4a33cfda 100644 --- a/Telegram/SourceFiles/ui/widgets/scroll_area.h +++ b/Telegram/SourceFiles/ui/widgets/scroll_area.h @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_widgets.h" #include +#include namespace Ui { diff --git a/Telegram/SourceFiles/ui/widgets/separate_panel.cpp b/Telegram/SourceFiles/ui/widgets/separate_panel.cpp index a87ae04db..3c8d30789 100644 --- a/Telegram/SourceFiles/ui/widgets/separate_panel.cpp +++ b/Telegram/SourceFiles/ui/widgets/separate_panel.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/layer_widget.h" #include "window/themes/window_theme.h" #include "core/application.h" +#include "app.h" #include "styles/style_widgets.h" #include "styles/style_info.h" #include "styles/style_calls.h" diff --git a/Telegram/SourceFiles/ui/widgets/tooltip.cpp b/Telegram/SourceFiles/ui/widgets/tooltip.cpp index 0b90b9853..ac6353e63 100644 --- a/Telegram/SourceFiles/ui/widgets/tooltip.cpp +++ b/Telegram/SourceFiles/ui/widgets/tooltip.cpp @@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "platform/platform_specific.h" #include "core/qt_signal_producer.h" +#include "app.h" #include "styles/style_widgets.h" #include diff --git a/Telegram/SourceFiles/window/layer_widget.cpp b/Telegram/SourceFiles/window/layer_widget.cpp index 204368c32..f8c38d042 100644 --- a/Telegram/SourceFiles/window/layer_widget.cpp +++ b/Telegram/SourceFiles/window/layer_widget.cpp @@ -7,32 +7,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "window/layer_widget.h" -#include "lang/lang_keys.h" -#include "data/data_photo.h" -#include "data/data_document.h" -#include "media/clip/media_clip_reader.h" #include "boxes/abstract_box.h" -#include "mainwindow.h" -#include "mainwidget.h" -#include "core/file_utilities.h" #include "ui/widgets/shadow.h" -#include "ui/image/image.h" -#include "ui/emoji_config.h" #include "window/window_main_menu.h" -#include "lottie/lottie_single_player.h" -#include "main/main_session.h" -#include "chat_helpers/stickers.h" -#include "window/window_session_controller.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_widgets.h" -#include "styles/style_chat_helpers.h" -#include "styles/style_history.h" - -namespace { - -constexpr int kStickerPreviewEmojiLimit = 10; - -} // namespace namespace Window { @@ -854,321 +834,3 @@ LayerStackWidget::~LayerStackWidget() { } } // namespace Window - -MediaPreviewWidget::MediaPreviewWidget( - QWidget *parent, - not_null controller) -: RpWidget(parent) -, _controller(controller) -, _emojiSize(Ui::Emoji::GetSizeLarge() / cIntRetinaFactor()) { - setAttribute(Qt::WA_TransparentForMouseEvents); - subscribe(_controller->session().downloaderTaskFinished(), [=] { - update(); - }); -} - -QRect MediaPreviewWidget::updateArea() const { - const auto size = currentDimensions(); - return QRect( - QPoint((width() - size.width()) / 2, (height() - size.height()) / 2), - size); -} - -void MediaPreviewWidget::paintEvent(QPaintEvent *e) { - Painter p(this); - QRect r(e->rect()); - - const auto image = [&] { - if (!_lottie || !_lottie->ready()) { - return QImage(); - } - _lottie->markFrameShown(); - return _lottie->frame(); - }(); - const auto pixmap = image.isNull() ? currentImage() : QPixmap(); - const auto size = image.isNull() ? pixmap.size() : image.size(); - int w = size.width() / cIntRetinaFactor(), h = size.height() / cIntRetinaFactor(); - auto shown = _a_shown.value(_hiding ? 0. : 1.); - if (!_a_shown.animating()) { - if (_hiding) { - hide(); - _controller->disableGifPauseReason(Window::GifPauseReason::MediaPreview); - return; - } - } else { - p.setOpacity(shown); -// w = qMax(qRound(w * (st::stickerPreviewMin + ((1. - st::stickerPreviewMin) * shown)) / 2.) * 2 + int(w % 2), 1); -// h = qMax(qRound(h * (st::stickerPreviewMin + ((1. - st::stickerPreviewMin) * shown)) / 2.) * 2 + int(h % 2), 1); - } - p.fillRect(r, st::stickerPreviewBg); - if (image.isNull()) { - p.drawPixmap((width() - w) / 2, (height() - h) / 2, pixmap); - } else { - p.drawImage( - QRect((width() - w) / 2, (height() - h) / 2, w, h), - image); - } - if (!_emojiList.empty()) { - const auto emojiCount = _emojiList.size(); - const auto emojiWidth = (emojiCount * _emojiSize) + (emojiCount - 1) * st::stickerEmojiSkip; - auto emojiLeft = (width() - emojiWidth) / 2; - const auto esize = Ui::Emoji::GetSizeLarge(); - for (const auto emoji : _emojiList) { - Ui::Emoji::Draw( - p, - emoji, - esize, - emojiLeft, - (height() - h) / 2 - (_emojiSize * 2)); - emojiLeft += _emojiSize + st::stickerEmojiSkip; - } - } -} - -void MediaPreviewWidget::resizeEvent(QResizeEvent *e) { - update(); -} - -void MediaPreviewWidget::showPreview( - Data::FileOrigin origin, - not_null document) { - if (!document - || (!document->isAnimation() && !document->sticker()) - || document->isVideoMessage()) { - hidePreview(); - return; - } - - startShow(); - _origin = origin; - _photo = nullptr; - _document = document; - fillEmojiString(); - resetGifAndCache(); -} - -void MediaPreviewWidget::showPreview( - Data::FileOrigin origin, - not_null photo) { - startShow(); - _origin = origin; - _photo = photo; - _document = nullptr; - fillEmojiString(); - resetGifAndCache(); -} - -void MediaPreviewWidget::startShow() { - _cache = QPixmap(); - if (isHidden() || _a_shown.animating()) { - if (isHidden()) { - show(); - _controller->enableGifPauseReason(Window::GifPauseReason::MediaPreview); - } - _hiding = false; - _a_shown.start([this] { update(); }, 0., 1., st::stickerPreviewDuration); - } else { - update(); - } -} - -void MediaPreviewWidget::hidePreview() { - if (isHidden()) { - return; - } - if (_gif) _cache = currentImage(); - _hiding = true; - _a_shown.start([this] { update(); }, 1., 0., st::stickerPreviewDuration); - _photo = nullptr; - _document = nullptr; - resetGifAndCache(); -} - -void MediaPreviewWidget::fillEmojiString() { - _emojiList.clear(); - if (_photo) { - return; - } - if (auto sticker = _document->sticker()) { - if (auto list = Stickers::GetEmojiListFromSet(_document)) { - _emojiList = std::move(*list); - while (_emojiList.size() > kStickerPreviewEmojiLimit) { - _emojiList.pop_back(); - } - } else if (const auto emoji = Ui::Emoji::Find(sticker->alt)) { - _emojiList.emplace_back(emoji); - } - } -} - -void MediaPreviewWidget::resetGifAndCache() { - _lottie = nullptr; - _gif.reset(); - _cacheStatus = CacheNotLoaded; - _cachedSize = QSize(); -} - -QSize MediaPreviewWidget::currentDimensions() const { - if (!_cachedSize.isEmpty()) { - return _cachedSize; - } - if (!_document && !_photo) { - _cachedSize = QSize(_cache.width() / cIntRetinaFactor(), _cache.height() / cIntRetinaFactor()); - return _cachedSize; - } - - QSize result, box; - if (_photo) { - result = QSize(_photo->width(), _photo->height()); - box = QSize(width() - 2 * st::boxVerticalMargin, height() - 2 * st::boxVerticalMargin); - } else { - result = _document->dimensions; - if (_gif && _gif->ready()) { - result = QSize(_gif->width(), _gif->height()); - } - if (_document->sticker()) { - box = QSize(st::maxStickerSize, st::maxStickerSize); - } else { - box = QSize(2 * st::maxStickerSize, 2 * st::maxStickerSize); - } - } - result = QSize(qMax(ConvertScale(result.width()), 1), qMax(ConvertScale(result.height()), 1)); - if (result.width() > box.width()) { - result.setHeight(qMax((box.width() * result.height()) / result.width(), 1)); - result.setWidth(box.width()); - } - if (result.height() > box.height()) { - result.setWidth(qMax((box.height() * result.width()) / result.height(), 1)); - result.setHeight(box.height()); - } - if (_photo) { - _cachedSize = result; - } - return result; -} - -void MediaPreviewWidget::setupLottie() { - Expects(_document != nullptr); - - _lottie = std::make_unique( - Lottie::ReadContent(_document->data(), _document->filepath()), - Lottie::FrameRequest{ currentDimensions() * cIntRetinaFactor() }, - Lottie::Quality::High); - - _lottie->updates( - ) | rpl::start_with_next([=](Lottie::Update update) { - update.data.match([&](const Lottie::Information &) { - this->update(); - }, [&](const Lottie::DisplayFrameRequest &) { - this->update(updateArea()); - }); - }, lifetime()); -} - -QPixmap MediaPreviewWidget::currentImage() const { - if (_document) { - if (const auto sticker = _document->sticker()) { - if (_cacheStatus != CacheLoaded) { - if (sticker->animated && !_lottie && _document->loaded()) { - const_cast(this)->setupLottie(); - } - if (_lottie && _lottie->ready()) { - return QPixmap(); - } else if (const auto image = _document->getStickerLarge()) { - QSize s = currentDimensions(); - _cache = image->pix(_origin, s.width(), s.height()); - _cacheStatus = CacheLoaded; - } else if (_cacheStatus != CacheThumbLoaded - && _document->hasThumbnail() - && _document->thumbnail()->loaded()) { - QSize s = currentDimensions(); - _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } - } - } else { - _document->automaticLoad(_origin, nullptr); - if (_document->loaded()) { - if (!_gif && !_gif.isBad()) { - auto that = const_cast(this); - that->_gif = Media::Clip::MakeReader(_document, FullMsgId(), [=](Media::Clip::Notification notification) { - that->clipCallback(notification); - }); - if (_gif) _gif->setAutoplay(); - } - } - if (_gif && _gif->started()) { - auto s = currentDimensions(); - auto paused = _controller->isGifPausedAtLeastFor(Window::GifPauseReason::MediaPreview); - return _gif->current(s.width(), s.height(), s.width(), s.height(), ImageRoundRadius::None, RectPart::None, paused ? 0 : crl::now()); - } - if (_cacheStatus != CacheThumbLoaded - && _document->hasThumbnail()) { - QSize s = currentDimensions(); - if (_document->thumbnail()->loaded()) { - _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } else if (const auto blurred = _document->thumbnailInline()) { - _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } else { - _document->thumbnail()->load(_origin); - } - } - } - } else if (_photo) { - if (_cacheStatus != CacheLoaded) { - if (_photo->loaded()) { - QSize s = currentDimensions(); - _cache = _photo->large()->pix(_origin, s.width(), s.height()); - _cacheStatus = CacheLoaded; - } else { - _photo->load(_origin); - if (_cacheStatus != CacheThumbLoaded) { - QSize s = currentDimensions(); - if (_photo->thumbnail()->loaded()) { - _cache = _photo->thumbnail()->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } else if (_photo->thumbnailSmall()->loaded()) { - _cache = _photo->thumbnailSmall()->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } else if (const auto blurred = _photo->thumbnailInline()) { - _cache = blurred->pixBlurred(_origin, s.width(), s.height()); - _cacheStatus = CacheThumbLoaded; - } else { - _photo->thumbnailSmall()->load(_origin); - } - } - } - } - - } - return _cache; -} - -void MediaPreviewWidget::clipCallback(Media::Clip::Notification notification) { - using namespace Media::Clip; - switch (notification) { - case NotificationReinit: { - if (_gif && _gif->state() == State::Error) { - _gif.setBad(); - } - - if (_gif && _gif->ready() && !_gif->started()) { - QSize s = currentDimensions(); - _gif->start(s.width(), s.height(), s.width(), s.height(), ImageRoundRadius::None, RectPart::None); - } - - update(); - } break; - - case NotificationRepaint: { - if (_gif && !_gif->currentDisplayed()) { - update(updateArea()); - } - } break; - } -} - -MediaPreviewWidget::~MediaPreviewWidget() { -} diff --git a/Telegram/SourceFiles/window/layer_widget.h b/Telegram/SourceFiles/window/layer_widget.h index 88f8bad8b..e7adbf213 100644 --- a/Telegram/SourceFiles/window/layer_widget.h +++ b/Telegram/SourceFiles/window/layer_widget.h @@ -15,6 +15,16 @@ namespace Lottie { class SinglePlayer; } // namespace Lottie +class BoxContent; + +enum class LayerOption { + CloseOther = (1 << 0), + KeepOther = (1 << 1), + ShowAfterOther = (1 << 2), +}; +using LayerOptions = base::flags; +inline constexpr auto is_flag_type(LayerOption) { return true; }; + namespace Window { class MainMenu; @@ -199,61 +209,6 @@ private: } // namespace Window -class MediaPreviewWidget : public Ui::RpWidget, private base::Subscriber { -public: - MediaPreviewWidget( - QWidget *parent, - not_null controller); - - void showPreview( - Data::FileOrigin origin, - not_null document); - void showPreview( - Data::FileOrigin origin, - not_null photo); - void hidePreview(); - - ~MediaPreviewWidget(); - -protected: - void paintEvent(QPaintEvent *e) override; - void resizeEvent(QResizeEvent *e) override; - -private: - QSize currentDimensions() const; - QPixmap currentImage() const; - void setupLottie(); - void startShow(); - void fillEmojiString(); - void resetGifAndCache(); - [[nodiscard]] QRect updateArea() const; - - not_null _controller; - - Ui::Animations::Simple _a_shown; - bool _hiding = false; - Data::FileOrigin _origin; - DocumentData *_document = nullptr; - PhotoData *_photo = nullptr; - Media::Clip::ReaderPointer _gif; - std::unique_ptr _lottie; - - int _emojiSize; - std::vector> _emojiList; - - void clipCallback(Media::Clip::Notification notification); - - enum CacheStatus { - CacheNotLoaded, - CacheThumbLoaded, - CacheLoaded, - }; - mutable CacheStatus _cacheStatus = CacheNotLoaded; - mutable QPixmap _cache; - mutable QSize _cachedSize; - -}; - class GenericBox; template diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index b397642c3..73b243d29 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -26,6 +26,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "apiwrap.h" #include "mainwindow.h" +#include "facades.h" +#include "app.h" #include "styles/style_window.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/window/notifications_manager.cpp b/Telegram/SourceFiles/window/notifications_manager.cpp index 8f021de4a..c3131598d 100644 --- a/Telegram/SourceFiles/window/notifications_manager.cpp +++ b/Telegram/SourceFiles/window/notifications_manager.cpp @@ -24,6 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwidget.h" #include "apiwrap.h" #include "main/main_session.h" +#include "facades.h" +#include "app.h" namespace Window { namespace Notifications { @@ -558,7 +560,7 @@ void NativeManager::doShowNotification( ? qsl("Telegram Desktop") : (scheduled && peer->isSelf()) ? tr::lng_notification_reminder(tr::now) - : App::peerName(peer); + : peer->name; const auto subtitle = options.hideNameAndPhoto ? QString() : item->notificationHeader(); diff --git a/Telegram/SourceFiles/window/notifications_manager.h b/Telegram/SourceFiles/window/notifications_manager.h index 3a0cbc0e7..2b634d12f 100644 --- a/Telegram/SourceFiles/window/notifications_manager.h +++ b/Telegram/SourceFiles/window/notifications_manager.h @@ -9,6 +9,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer.h" +class History; + namespace Main { class Session; } // namespace Main diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp index 01860062f..16253b9e5 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.cpp +++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp @@ -25,6 +25,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history.h" #include "history/history_item.h" #include "platform/platform_specific.h" +#include "facades.h" +#include "app.h" #include diff --git a/Telegram/SourceFiles/window/notifications_manager_default.h b/Telegram/SourceFiles/window/notifications_manager_default.h index a7ec1a0b1..4129eab1e 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.h +++ b/Telegram/SourceFiles/window/notifications_manager_default.h @@ -10,6 +10,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/notifications_manager.h" #include "ui/effects/animations.h" #include "base/timer.h" +#include "base/binary_guard.h" + +#include namespace Ui { class IconButton; diff --git a/Telegram/SourceFiles/window/themes/window_theme.cpp b/Telegram/SourceFiles/window/themes/window_theme.cpp index 259d254b7..19a753e8e 100644 --- a/Telegram/SourceFiles/window/themes/window_theme.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme.cpp @@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/image/image.h" #include "boxes/background_box.h" #include "core/application.h" +#include "app.h" #include "styles/style_widgets.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/window/themes/window_theme_editor.cpp b/Telegram/SourceFiles/window/themes/window_theme_editor.cpp index 3d67cbd48..b1272bcd6 100644 --- a/Telegram/SourceFiles/window/themes/window_theme_editor.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme_editor.cpp @@ -28,6 +28,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "boxes/edit_color_box.h" #include "lang/lang_keys.h" +#include "facades.h" +#include "app.h" #include "styles/style_window.h" #include "styles/style_dialogs.h" #include "styles/style_boxes.h" diff --git a/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp b/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp index e797faa26..5922ddb7e 100644 --- a/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme_editor_block.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/shadow.h" #include "boxes/edit_color_box.h" #include "lang/lang_keys.h" +#include "facades.h" namespace Window { namespace Theme { diff --git a/Telegram/SourceFiles/window/themes/window_theme_editor_box.cpp b/Telegram/SourceFiles/window/themes/window_theme_editor_box.cpp index 1e2fc4d7f..18c169f84 100644 --- a/Telegram/SourceFiles/window/themes/window_theme_editor_box.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme_editor_box.cpp @@ -36,6 +36,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mainwindow.h" #include "layout.h" #include "apiwrap.h" +#include "app.h" #include "styles/style_widgets.h" #include "styles/style_window.h" #include "styles/style_settings.h" diff --git a/Telegram/SourceFiles/window/themes/window_theme_warning.cpp b/Telegram/SourceFiles/window/themes/window_theme_warning.cpp index 63dea3048..3b98bfafe 100644 --- a/Telegram/SourceFiles/window/themes/window_theme_warning.cpp +++ b/Telegram/SourceFiles/window/themes/window_theme_warning.cpp @@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/shadow.h" #include "window/themes/window_theme.h" #include "lang/lang_keys.h" +#include "app.h" namespace Window { namespace Theme { diff --git a/Telegram/SourceFiles/window/themes/window_themes_cloud_list.h b/Telegram/SourceFiles/window/themes/window_themes_cloud_list.h index da9e0b8bf..b9b0cf137 100644 --- a/Telegram/SourceFiles/window/themes/window_themes_cloud_list.h +++ b/Telegram/SourceFiles/window/themes/window_themes_cloud_list.h @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_cloud_themes.h" #include "ui/widgets/checkbox.h" #include "base/unique_qptr.h" +#include "base/binary_guard.h" namespace Ui { class PopupMenu; diff --git a/Telegram/SourceFiles/window/window_connecting_widget.cpp b/Telegram/SourceFiles/window/window_connecting_widget.cpp index 626ae3d55..3273b6b69 100644 --- a/Telegram/SourceFiles/window/window_connecting_widget.cpp +++ b/Telegram/SourceFiles/window/window_connecting_widget.cpp @@ -12,6 +12,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "boxes/connection_box.h" #include "lang/lang_keys.h" +#include "facades.h" +#include "app.h" #include "styles/style_window.h" namespace Window { diff --git a/Telegram/SourceFiles/window/window_controller.cpp b/Telegram/SourceFiles/window/window_controller.cpp index 93d89dccd..7ee034bd7 100644 --- a/Telegram/SourceFiles/window/window_controller.cpp +++ b/Telegram/SourceFiles/window/window_controller.cpp @@ -14,6 +14,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/themes/window_theme.h" #include "window/themes/window_theme_editor.h" #include "mainwindow.h" +#include "facades.h" +#include "app.h" #include #include diff --git a/Telegram/SourceFiles/window/window_history_hider.cpp b/Telegram/SourceFiles/window/window_history_hider.cpp index 49b4e08fc..677e781cb 100644 --- a/Telegram/SourceFiles/window/window_history_hider.cpp +++ b/Telegram/SourceFiles/window/window_history_hider.cpp @@ -11,6 +11,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/shadow.h" #include "mainwidget.h" +#include "facades.h" +#include "app.h" #include "styles/style_boxes.h" #include "styles/style_history.h" diff --git a/Telegram/SourceFiles/window/window_lock_widgets.cpp b/Telegram/SourceFiles/window/window_lock_widgets.cpp index 11770c594..f063542a9 100644 --- a/Telegram/SourceFiles/window/window_lock_widgets.cpp +++ b/Telegram/SourceFiles/window/window_lock_widgets.cpp @@ -22,7 +22,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_controller.h" #include "window/window_slide_animation.h" #include "window/window_session_controller.h" -#include "main/main_session.h" +#include "main/main_account.h" +#include "facades.h" namespace Window { @@ -32,6 +33,10 @@ LockWidget::LockWidget(QWidget *parent, not_null window) show(); } +not_null LockWidget::window() const { + return _window; +} + void LockWidget::setInnerFocus() { if (const auto controller = _window->sessionController()) { controller->dialogsListFocused().set(false, true); @@ -138,7 +143,7 @@ void PasscodeLockWidget::submit() { } const auto passcode = _passcode->text().toUtf8(); - const auto correct = App::main() + const auto correct = window()->account().sessionExists() ? Local::checkPasscode(passcode) : (Local::readMap(passcode) != Local::ReadMapPassNeeded); if (!correct) { diff --git a/Telegram/SourceFiles/window/window_lock_widgets.h b/Telegram/SourceFiles/window/window_lock_widgets.h index f2aeb6b3b..9795e9fd2 100644 --- a/Telegram/SourceFiles/window/window_lock_widgets.h +++ b/Telegram/SourceFiles/window/window_lock_widgets.h @@ -27,6 +27,8 @@ class LockWidget : public Ui::RpWidget { public: LockWidget(QWidget *parent, not_null window); + not_null window() const; + virtual void setInnerFocus(); void showAnimated(const QPixmap &bgAnimCache, bool back = false); diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index efba2bc6c..2d534b0ba 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -32,6 +32,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_session.h" #include "data/data_user.h" #include "mainwidget.h" +#include "facades.h" +#include "app.h" #include "styles/style_window.h" #include "styles/style_dialogs.h" #include "styles/style_settings.h" diff --git a/Telegram/SourceFiles/window/window_media_preview.cpp b/Telegram/SourceFiles/window/window_media_preview.cpp new file mode 100644 index 000000000..fc7f60898 --- /dev/null +++ b/Telegram/SourceFiles/window/window_media_preview.cpp @@ -0,0 +1,347 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#include "window/window_media_preview.h" + +#include "data/data_photo.h" +#include "data/data_document.h" +#include "ui/image/image.h" +#include "ui/emoji_config.h" +#include "lottie/lottie_single_player.h" +#include "main/main_session.h" +#include "chat_helpers/stickers.h" +#include "window/window_session_controller.h" +#include "styles/style_boxes.h" +#include "styles/style_chat_helpers.h" +#include "styles/style_history.h" + +namespace Window { +namespace { + +constexpr int kStickerPreviewEmojiLimit = 10; + +} // namespace + +MediaPreviewWidget::MediaPreviewWidget( + QWidget *parent, + not_null controller) +: RpWidget(parent) +, _controller(controller) +, _emojiSize(Ui::Emoji::GetSizeLarge() / cIntRetinaFactor()) { + setAttribute(Qt::WA_TransparentForMouseEvents); + subscribe(_controller->session().downloaderTaskFinished(), [=] { + update(); + }); +} + +QRect MediaPreviewWidget::updateArea() const { + const auto size = currentDimensions(); + return QRect( + QPoint((width() - size.width()) / 2, (height() - size.height()) / 2), + size); +} + +void MediaPreviewWidget::paintEvent(QPaintEvent *e) { + Painter p(this); + QRect r(e->rect()); + + const auto image = [&] { + if (!_lottie || !_lottie->ready()) { + return QImage(); + } + _lottie->markFrameShown(); + return _lottie->frame(); + }(); + const auto pixmap = image.isNull() ? currentImage() : QPixmap(); + const auto size = image.isNull() ? pixmap.size() : image.size(); + int w = size.width() / cIntRetinaFactor(), h = size.height() / cIntRetinaFactor(); + auto shown = _a_shown.value(_hiding ? 0. : 1.); + if (!_a_shown.animating()) { + if (_hiding) { + hide(); + _controller->disableGifPauseReason(Window::GifPauseReason::MediaPreview); + return; + } + } else { + p.setOpacity(shown); +// w = qMax(qRound(w * (st::stickerPreviewMin + ((1. - st::stickerPreviewMin) * shown)) / 2.) * 2 + int(w % 2), 1); +// h = qMax(qRound(h * (st::stickerPreviewMin + ((1. - st::stickerPreviewMin) * shown)) / 2.) * 2 + int(h % 2), 1); + } + p.fillRect(r, st::stickerPreviewBg); + if (image.isNull()) { + p.drawPixmap((width() - w) / 2, (height() - h) / 2, pixmap); + } else { + p.drawImage( + QRect((width() - w) / 2, (height() - h) / 2, w, h), + image); + } + if (!_emojiList.empty()) { + const auto emojiCount = _emojiList.size(); + const auto emojiWidth = (emojiCount * _emojiSize) + (emojiCount - 1) * st::stickerEmojiSkip; + auto emojiLeft = (width() - emojiWidth) / 2; + const auto esize = Ui::Emoji::GetSizeLarge(); + for (const auto emoji : _emojiList) { + Ui::Emoji::Draw( + p, + emoji, + esize, + emojiLeft, + (height() - h) / 2 - (_emojiSize * 2)); + emojiLeft += _emojiSize + st::stickerEmojiSkip; + } + } +} + +void MediaPreviewWidget::resizeEvent(QResizeEvent *e) { + update(); +} + +void MediaPreviewWidget::showPreview( + Data::FileOrigin origin, + not_null document) { + if (!document + || (!document->isAnimation() && !document->sticker()) + || document->isVideoMessage()) { + hidePreview(); + return; + } + + startShow(); + _origin = origin; + _photo = nullptr; + _document = document; + fillEmojiString(); + resetGifAndCache(); +} + +void MediaPreviewWidget::showPreview( + Data::FileOrigin origin, + not_null photo) { + startShow(); + _origin = origin; + _photo = photo; + _document = nullptr; + fillEmojiString(); + resetGifAndCache(); +} + +void MediaPreviewWidget::startShow() { + _cache = QPixmap(); + if (isHidden() || _a_shown.animating()) { + if (isHidden()) { + show(); + _controller->enableGifPauseReason(Window::GifPauseReason::MediaPreview); + } + _hiding = false; + _a_shown.start([this] { update(); }, 0., 1., st::stickerPreviewDuration); + } else { + update(); + } +} + +void MediaPreviewWidget::hidePreview() { + if (isHidden()) { + return; + } + if (_gif) _cache = currentImage(); + _hiding = true; + _a_shown.start([this] { update(); }, 1., 0., st::stickerPreviewDuration); + _photo = nullptr; + _document = nullptr; + resetGifAndCache(); +} + +void MediaPreviewWidget::fillEmojiString() { + _emojiList.clear(); + if (_photo) { + return; + } + if (auto sticker = _document->sticker()) { + if (auto list = Stickers::GetEmojiListFromSet(_document)) { + _emojiList = std::move(*list); + while (_emojiList.size() > kStickerPreviewEmojiLimit) { + _emojiList.pop_back(); + } + } else if (const auto emoji = Ui::Emoji::Find(sticker->alt)) { + _emojiList.emplace_back(emoji); + } + } +} + +void MediaPreviewWidget::resetGifAndCache() { + _lottie = nullptr; + _gif.reset(); + _cacheStatus = CacheNotLoaded; + _cachedSize = QSize(); +} + +QSize MediaPreviewWidget::currentDimensions() const { + if (!_cachedSize.isEmpty()) { + return _cachedSize; + } + if (!_document && !_photo) { + _cachedSize = QSize(_cache.width() / cIntRetinaFactor(), _cache.height() / cIntRetinaFactor()); + return _cachedSize; + } + + QSize result, box; + if (_photo) { + result = QSize(_photo->width(), _photo->height()); + box = QSize(width() - 2 * st::boxVerticalMargin, height() - 2 * st::boxVerticalMargin); + } else { + result = _document->dimensions; + if (_gif && _gif->ready()) { + result = QSize(_gif->width(), _gif->height()); + } + if (_document->sticker()) { + box = QSize(st::maxStickerSize, st::maxStickerSize); + } else { + box = QSize(2 * st::maxStickerSize, 2 * st::maxStickerSize); + } + } + result = QSize(qMax(ConvertScale(result.width()), 1), qMax(ConvertScale(result.height()), 1)); + if (result.width() > box.width()) { + result.setHeight(qMax((box.width() * result.height()) / result.width(), 1)); + result.setWidth(box.width()); + } + if (result.height() > box.height()) { + result.setWidth(qMax((box.height() * result.width()) / result.height(), 1)); + result.setHeight(box.height()); + } + if (_photo) { + _cachedSize = result; + } + return result; +} + +void MediaPreviewWidget::setupLottie() { + Expects(_document != nullptr); + + _lottie = std::make_unique( + Lottie::ReadContent(_document->data(), _document->filepath()), + Lottie::FrameRequest{ currentDimensions() * cIntRetinaFactor() }, + Lottie::Quality::High); + + _lottie->updates( + ) | rpl::start_with_next([=](Lottie::Update update) { + update.data.match([&](const Lottie::Information &) { + this->update(); + }, [&](const Lottie::DisplayFrameRequest &) { + this->update(updateArea()); + }); + }, lifetime()); +} + +QPixmap MediaPreviewWidget::currentImage() const { + if (_document) { + if (const auto sticker = _document->sticker()) { + if (_cacheStatus != CacheLoaded) { + if (sticker->animated && !_lottie && _document->loaded()) { + const_cast(this)->setupLottie(); + } + if (_lottie && _lottie->ready()) { + return QPixmap(); + } else if (const auto image = _document->getStickerLarge()) { + QSize s = currentDimensions(); + _cache = image->pix(_origin, s.width(), s.height()); + _cacheStatus = CacheLoaded; + } else if (_cacheStatus != CacheThumbLoaded + && _document->hasThumbnail() + && _document->thumbnail()->loaded()) { + QSize s = currentDimensions(); + _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } + } + } else { + _document->automaticLoad(_origin, nullptr); + if (_document->loaded()) { + if (!_gif && !_gif.isBad()) { + auto that = const_cast(this); + that->_gif = Media::Clip::MakeReader(_document, FullMsgId(), [=](Media::Clip::Notification notification) { + that->clipCallback(notification); + }); + if (_gif) _gif->setAutoplay(); + } + } + if (_gif && _gif->started()) { + auto s = currentDimensions(); + auto paused = _controller->isGifPausedAtLeastFor(Window::GifPauseReason::MediaPreview); + return _gif->current(s.width(), s.height(), s.width(), s.height(), ImageRoundRadius::None, RectPart::None, paused ? 0 : crl::now()); + } + if (_cacheStatus != CacheThumbLoaded + && _document->hasThumbnail()) { + QSize s = currentDimensions(); + if (_document->thumbnail()->loaded()) { + _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } else if (const auto blurred = _document->thumbnailInline()) { + _cache = _document->thumbnail()->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } else { + _document->thumbnail()->load(_origin); + } + } + } + } else if (_photo) { + if (_cacheStatus != CacheLoaded) { + if (_photo->loaded()) { + QSize s = currentDimensions(); + _cache = _photo->large()->pix(_origin, s.width(), s.height()); + _cacheStatus = CacheLoaded; + } else { + _photo->load(_origin); + if (_cacheStatus != CacheThumbLoaded) { + QSize s = currentDimensions(); + if (_photo->thumbnail()->loaded()) { + _cache = _photo->thumbnail()->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } else if (_photo->thumbnailSmall()->loaded()) { + _cache = _photo->thumbnailSmall()->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } else if (const auto blurred = _photo->thumbnailInline()) { + _cache = blurred->pixBlurred(_origin, s.width(), s.height()); + _cacheStatus = CacheThumbLoaded; + } else { + _photo->thumbnailSmall()->load(_origin); + } + } + } + } + + } + return _cache; +} + +void MediaPreviewWidget::clipCallback(Media::Clip::Notification notification) { + using namespace Media::Clip; + switch (notification) { + case NotificationReinit: { + if (_gif && _gif->state() == State::Error) { + _gif.setBad(); + } + + if (_gif && _gif->ready() && !_gif->started()) { + QSize s = currentDimensions(); + _gif->start(s.width(), s.height(), s.width(), s.height(), ImageRoundRadius::None, RectPart::None); + } + + update(); + } break; + + case NotificationRepaint: { + if (_gif && !_gif->currentDisplayed()) { + update(updateArea()); + } + } break; + } +} + +MediaPreviewWidget::~MediaPreviewWidget() { +} + +} // namespace Window diff --git a/Telegram/SourceFiles/window/window_media_preview.h b/Telegram/SourceFiles/window/window_media_preview.h new file mode 100644 index 000000000..7dc4cc350 --- /dev/null +++ b/Telegram/SourceFiles/window/window_media_preview.h @@ -0,0 +1,78 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +#include "media/clip/media_clip_reader.h" +#include "ui/effects/animations.h" +#include "data/data_file_origin.h" +#include "ui/rp_widget.h" + +namespace Lottie { +class SinglePlayer; +} // namespace Lottie + +namespace Window { + +class SessionController; + +class MediaPreviewWidget : public Ui::RpWidget, private base::Subscriber { +public: + MediaPreviewWidget( + QWidget *parent, + not_null controller); + + void showPreview( + Data::FileOrigin origin, + not_null document); + void showPreview( + Data::FileOrigin origin, + not_null photo); + void hidePreview(); + + ~MediaPreviewWidget(); + +protected: + void paintEvent(QPaintEvent *e) override; + void resizeEvent(QResizeEvent *e) override; + +private: + QSize currentDimensions() const; + QPixmap currentImage() const; + void setupLottie(); + void startShow(); + void fillEmojiString(); + void resetGifAndCache(); + [[nodiscard]] QRect updateArea() const; + + not_null _controller; + + Ui::Animations::Simple _a_shown; + bool _hiding = false; + Data::FileOrigin _origin; + DocumentData *_document = nullptr; + PhotoData *_photo = nullptr; + Media::Clip::ReaderPointer _gif; + std::unique_ptr _lottie; + + int _emojiSize; + std::vector> _emojiList; + + void clipCallback(Media::Clip::Notification notification); + + enum CacheStatus { + CacheNotLoaded, + CacheThumbLoaded, + CacheLoaded, + }; + mutable CacheStatus _cacheStatus = CacheNotLoaded; + mutable QPixmap _cache; + mutable QSize _cachedSize; + +}; + +} // namespace Window diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index f43b63c77..ac4ece849 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -46,6 +46,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_scheduled_messages.h" #include "dialogs/dialogs_key.h" #include "boxes/peers/edit_peer_info_box.h" +#include "facades.h" #include "styles/style_boxes.h" #include "styles/style_window.h" // st::windowMinWidth @@ -645,7 +646,7 @@ void PeerMenuDeleteContact(not_null user) { const auto text = tr::lng_sure_delete_contact( tr::now, lt_contact, - App::peerName(user)); + user->name); const auto deleteSure = [=] { Ui::hideLayer(); user->session().api().request(MTPcontacts_DeleteContacts( diff --git a/Telegram/SourceFiles/window/window_peer_menu.h b/Telegram/SourceFiles/window/window_peer_menu.h index b376a4499..ffb99ace0 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.h +++ b/Telegram/SourceFiles/window/window_peer_menu.h @@ -8,6 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #pragma once class GenericBox; +class History; namespace Ui { class RpWidget; diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index dab41a286..14146faa1 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "apiwrap.h" #include "support/support_helper.h" +#include "facades.h" #include "styles/style_window.h" #include "styles/style_dialogs.h" diff --git a/Telegram/SourceFiles/window/window_session_controller.h b/Telegram/SourceFiles/window/window_session_controller.h index 3155577b7..f19ffc6e6 100644 --- a/Telegram/SourceFiles/window/window_session_controller.h +++ b/Telegram/SourceFiles/window/window_session_controller.h @@ -11,12 +11,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/flags.h" #include "base/observer.h" #include "dialogs/dialogs_key.h" +#include "ui/effects/animation_value.h" class MainWidget; class MainWindow; class HistoryMessage; class HistoryService; +namespace Adaptive { +enum class WindowLayout; +} // namespace Adaptive + namespace ChatHelpers { class TabbedSelector; } // namespace ChatHelpers diff --git a/Telegram/SourceFiles/window/window_top_bar_wrap.h b/Telegram/SourceFiles/window/window_top_bar_wrap.h index 42dc30a23..8cfe463df 100644 --- a/Telegram/SourceFiles/window/window_top_bar_wrap.h +++ b/Telegram/SourceFiles/window/window_top_bar_wrap.h @@ -1,6 +1,7 @@ #pragma once #include "ui/wrap/slide_wrap.h" +#include "facades.h" namespace Window { diff --git a/Telegram/gyp/telegram_sources.txt b/Telegram/gyp/telegram_sources.txt index 68da81d05..04ac54519 100644 --- a/Telegram/gyp/telegram_sources.txt +++ b/Telegram/gyp/telegram_sources.txt @@ -736,6 +736,8 @@ <(src_loc)/support/support_helper.h <(src_loc)/support/support_templates.cpp <(src_loc)/support/support_templates.h +<(src_loc)/ui/effects/animation_value.cpp +<(src_loc)/ui/effects/animation_value.h <(src_loc)/ui/effects/animations.cpp <(src_loc)/ui/effects/animations.h <(src_loc)/ui/effects/cross_animation.cpp @@ -832,8 +834,6 @@ <(src_loc)/ui/wrap/wrap.h <(src_loc)/ui/abstract_button.cpp <(src_loc)/ui/abstract_button.h -<(src_loc)/ui/animation.cpp -<(src_loc)/ui/animation.h <(src_loc)/ui/countryinput.cpp <(src_loc)/ui/countryinput.h <(src_loc)/ui/emoji_config.cpp @@ -879,6 +879,8 @@ <(src_loc)/window/window_lock_widgets.h <(src_loc)/window/window_main_menu.cpp <(src_loc)/window/window_main_menu.h +<(src_loc)/window/window_media_preview.cpp +<(src_loc)/window/window_media_preview.h <(src_loc)/window/window_outdated_bar.cpp <(src_loc)/window/window_outdated_bar.h <(src_loc)/window/window_peer_menu.cpp