diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index ea13cd743..0e007ca90 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -460,6 +460,8 @@ PRIVATE data/business/data_business_info.h data/business/data_shortcut_messages.cpp data/business/data_shortcut_messages.h + data/components/scheduled_messages.cpp + data/components/scheduled_messages.h data/components/sponsored_messages.cpp data/components/sponsored_messages.h data/notify/data_notify_settings.cpp @@ -579,8 +581,6 @@ PRIVATE data/data_send_action.h data/data_session.cpp data/data_session.h - data/data_scheduled_messages.cpp - data/data_scheduled_messages.h data/data_shared_media.cpp data/data_shared_media.h data/data_sparse_ids.cpp diff --git a/Telegram/SourceFiles/api/api_editing.cpp b/Telegram/SourceFiles/api/api_editing.cpp index 1dba418dd..f91a73579 100644 --- a/Telegram/SourceFiles/api/api_editing.cpp +++ b/Telegram/SourceFiles/api/api_editing.cpp @@ -12,12 +12,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_text_entities.h" #include "ui/boxes/confirm_box.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/data_histories.h" -#include "data/data_scheduled_messages.h" #include "data/data_session.h" #include "data/data_web_page.h" #include "history/history.h" -#include "history/history_item.h" #include "lang/lang_keys.h" #include "main/main_session.h" #include "mtproto/mtproto_response.h" @@ -95,7 +94,7 @@ mtpRequestId EditMessage( : emptyFlag); const auto id = item->isScheduled() - ? session->data().scheduledMessages().lookupId(item) + ? session->scheduledMessages().lookupId(item) : item->isBusinessShortcut() ? session->data().shortcutMessages().lookupId(item) : item->id; diff --git a/Telegram/SourceFiles/api/api_updates.cpp b/Telegram/SourceFiles/api/api_updates.cpp index c9c000782..9918ec7a9 100644 --- a/Telegram/SourceFiles/api/api_updates.cpp +++ b/Telegram/SourceFiles/api/api_updates.cpp @@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "mtproto/mtproto_config.h" #include "mtproto/mtproto_dc_options.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/notify/data_notify_settings.h" #include "data/stickers/data_stickers.h" #include "data/data_saved_messages.h" @@ -37,7 +38,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_histories.h" #include "data/data_folder.h" #include "data/data_forum.h" -#include "data/data_scheduled_messages.h" #include "data/data_send_action.h" #include "data/data_stories.h" #include "data/data_message_reactions.h" @@ -94,7 +94,7 @@ void ProcessScheduledMessageWithElapsedTime( // Note that when a message is scheduled until online // while the recipient is already online, the server sends // an ordinary new message with skipped "from_scheduled" flag. - session->data().scheduledMessages().checkEntitiesAndUpdate(data); + session->scheduledMessages().checkEntitiesAndUpdate(data); } } @@ -1464,7 +1464,9 @@ void Updates::applyUpdates( if (const auto id = owner.messageIdByRandomId(randomId)) { const auto local = owner.message(id); if (local && local->isScheduled()) { - owner.scheduledMessages().sendNowSimpleMessage(d, local); + session().scheduledMessages().sendNowSimpleMessage( + d, + local); } } const auto wasAlready = (lookupMessage() != nullptr); @@ -1561,7 +1563,7 @@ void Updates::feedUpdate(const MTPUpdate &update) { auto &owner = session().data(); if (const auto local = owner.message(id)) { if (local->isScheduled()) { - session().data().scheduledMessages().apply(d, local); + session().scheduledMessages().apply(d, local); } else if (local->isBusinessShortcut()) { session().data().shortcutMessages().apply(d, local); } else { @@ -1771,12 +1773,12 @@ void Updates::feedUpdate(const MTPUpdate &update) { case mtpc_updateNewScheduledMessage: { const auto &d = update.c_updateNewScheduledMessage(); - session().data().scheduledMessages().apply(d); + session().scheduledMessages().apply(d); } break; case mtpc_updateDeleteScheduledMessages: { const auto &d = update.c_updateDeleteScheduledMessages(); - session().data().scheduledMessages().apply(d); + session().scheduledMessages().apply(d); } break; case mtpc_updateQuickReplies: { diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 20c52fbdd..aeed9e1b3 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_user_names.h" #include "api/api_websites.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/notify/data_notify_settings.h" #include "data/data_changes.h" #include "data/data_web_page.h" @@ -43,7 +44,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_forum.h" #include "data/data_saved_sublist.h" #include "data/data_search_controller.h" -#include "data/data_scheduled_messages.h" #include "data/data_session.h" #include "data/data_channel.h" #include "data/data_chat.h" @@ -542,7 +542,7 @@ void ApiWrap::sendMessageFail( } } } else if (error == u"SCHEDULE_STATUS_PRIVATE"_q) { - auto &scheduled = _session->data().scheduledMessages(); + auto &scheduled = _session->scheduledMessages(); Assert(peer->isUser()); if (const auto item = scheduled.lookupItem(peer->id, itemId.msg)) { scheduled.removeSending(item); @@ -2447,8 +2447,8 @@ void ApiWrap::refreshFileReference( _session->data().peer(storyId.peer)->input, MTP_vector(1, MTP_int(storyId.story)))); } else if (item->isScheduled()) { - const auto &scheduled = _session->data().scheduledMessages(); - const auto realId = scheduled.lookupId(item); + const auto realId = _session->scheduledMessages().lookupId( + item); request(MTPmessages_GetScheduledMessages( item->history()->peer->input, MTP_vector(1, MTP_int(realId)))); diff --git a/Telegram/SourceFiles/data/data_scheduled_messages.cpp b/Telegram/SourceFiles/data/components/scheduled_messages.cpp similarity index 99% rename from Telegram/SourceFiles/data/data_scheduled_messages.cpp rename to Telegram/SourceFiles/data/components/scheduled_messages.cpp index ffe4ab436..c7e2daddc 100644 --- a/Telegram/SourceFiles/data/data_scheduled_messages.cpp +++ b/Telegram/SourceFiles/data/components/scheduled_messages.cpp @@ -5,7 +5,7 @@ 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 "data/data_scheduled_messages.h" +#include "data/components/scheduled_messages.h" #include "base/unixtime.h" #include "data/data_forum_topic.h" @@ -101,10 +101,10 @@ bool IsScheduledMsgId(MsgId id) { return (id > ServerMaxMsgId) && (id < ScheduledMaxMsgId); } -ScheduledMessages::ScheduledMessages(not_null owner) -: _session(&owner->session()) +ScheduledMessages::ScheduledMessages(not_null session) +: _session(session) , _clearTimer([=] { clearOldRequests(); }) { - owner->itemRemoved( + _session->data().itemRemoved( ) | rpl::filter([](not_null item) { return item->isScheduled(); }) | rpl::start_with_next([=](not_null item) { diff --git a/Telegram/SourceFiles/data/data_scheduled_messages.h b/Telegram/SourceFiles/data/components/scheduled_messages.h similarity index 97% rename from Telegram/SourceFiles/data/data_scheduled_messages.h rename to Telegram/SourceFiles/data/components/scheduled_messages.h index 5daacd099..f1c568d92 100644 --- a/Telegram/SourceFiles/data/data_scheduled_messages.h +++ b/Telegram/SourceFiles/data/components/scheduled_messages.h @@ -18,14 +18,13 @@ class Session; namespace Data { -class Session; struct MessagesSlice; [[nodiscard]] bool IsScheduledMsgId(MsgId id); class ScheduledMessages final { public: - explicit ScheduledMessages(not_null owner); + explicit ScheduledMessages(not_null session); ScheduledMessages(const ScheduledMessages &other) = delete; ScheduledMessages &operator=(const ScheduledMessages &other) = delete; ~ScheduledMessages(); diff --git a/Telegram/SourceFiles/data/data_histories.cpp b/Telegram/SourceFiles/data/data_histories.cpp index 26fb8b864..0f428913a 100644 --- a/Telegram/SourceFiles/data/data_histories.cpp +++ b/Telegram/SourceFiles/data/data_histories.cpp @@ -9,13 +9,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_text_entities.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/data_session.h" #include "data/data_channel.h" #include "data/data_chat.h" #include "data/data_folder.h" #include "data/data_forum.h" #include "data/data_forum_topic.h" -#include "data/data_scheduled_messages.h" #include "data/data_user.h" #include "base/unixtime.h" #include "base/random.h" @@ -830,11 +830,12 @@ void Histories::deleteMessages(const MessageIdsList &ids, bool revoke) { if (item->isScheduled()) { const auto wasOnServer = !item->isSending() && !item->hasFailed(); + auto &scheduled = _owner->session().scheduledMessages(); if (wasOnServer) { - scheduledIdsByPeer[history->peer].push_back(MTP_int( - _owner->scheduledMessages().lookupId(item))); + scheduledIdsByPeer[history->peer].push_back( + MTP_int(scheduled.lookupId(item))); } else { - _owner->scheduledMessages().removeSending(item); + scheduled.removeSending(item); } continue; } else if (item->isBusinessShortcut()) { diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 7a8e9e372..ed165a0c9 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -56,7 +56,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_poll.h" #include "data/data_replies_list.h" #include "data/data_chat_filters.h" -#include "data/data_scheduled_messages.h" #include "data/data_send_action.h" #include "data/data_message_reactions.h" #include "data/data_emoji_statuses.h" @@ -271,7 +270,6 @@ Session::Session(not_null session) , _savedMessages(std::make_unique(this)) , _chatbots(std::make_unique(this)) , _businessInfo(std::make_unique(this)) -, _scheduledMessages(std::make_unique(this)) , _shortcutMessages(std::make_unique(this)) { _cache->open(_session->local().cacheKey()); _bigFileCache->open(_session->local().cacheBigFileKey()); @@ -395,7 +393,6 @@ void Session::clear() { _sendActionManager->clear(); _histories->unloadAll(); - _scheduledMessages = nullptr; _shortcutMessages = nullptr; _dependentMessages.clear(); base::take(_messages); diff --git a/Telegram/SourceFiles/data/data_session.h b/Telegram/SourceFiles/data/data_session.h index 9bf97e60f..fa58d4847 100644 --- a/Telegram/SourceFiles/data/data_session.h +++ b/Telegram/SourceFiles/data/data_session.h @@ -47,7 +47,6 @@ namespace Data { class Folder; class LocationPoint; class WallPaper; -class ScheduledMessages; class ShortcutMessages; class SendActionManager; class Reactions; @@ -103,9 +102,6 @@ public: [[nodiscard]] ChatFilters &chatsFilters() const { return *_chatsFilters; } - [[nodiscard]] ScheduledMessages &scheduledMessages() const { - return *_scheduledMessages; - } [[nodiscard]] ShortcutMessages &shortcutMessages() const { return *_shortcutMessages; } @@ -1080,7 +1076,6 @@ private: const std::unique_ptr _savedMessages; const std::unique_ptr _chatbots; const std::unique_ptr _businessInfo; - std::unique_ptr _scheduledMessages; std::unique_ptr _shortcutMessages; MsgId _nonHistoryEntryId = ShortcutMaxMsgId; diff --git a/Telegram/SourceFiles/data/data_shared_media.cpp b/Telegram/SourceFiles/data/data_shared_media.cpp index 8033fba9c..6834190bf 100644 --- a/Telegram/SourceFiles/data/data_shared_media.cpp +++ b/Telegram/SourceFiles/data/data_shared_media.cpp @@ -13,10 +13,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/storage_facade.h" #include "history/history.h" #include "history/history_item.h" +#include "data/components/scheduled_messages.h" #include "data/data_document.h" #include "data/data_media_types.h" #include "data/data_photo.h" -#include "data/data_scheduled_messages.h" #include "data/data_session.h" #include "core/crash_reports.h" @@ -193,9 +193,9 @@ rpl::producer SharedScheduledMediaViewer( const auto history = session->data().history(key.mergedKey.peerId); return rpl::single(rpl::empty) | rpl::then( - session->data().scheduledMessages().updates(history) + session->scheduledMessages().updates(history) ) | rpl::map([=] { - const auto list = session->data().scheduledMessages().list(history); + const auto list = session->scheduledMessages().list(history); auto items = ranges::views::all( list.ids diff --git a/Telegram/SourceFiles/history/history.cpp b/Telegram/SourceFiles/history/history.cpp index b91d0fdf4..c269dba39 100644 --- a/Telegram/SourceFiles/history/history.cpp +++ b/Telegram/SourceFiles/history/history.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "history/history_unread_things.h" #include "dialogs/ui/dialogs_layout.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/components/sponsored_messages.h" #include "data/notify/data_notify_settings.h" #include "data/stickers/data_stickers.h" @@ -29,7 +30,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_channel_admins.h" #include "data/data_changes.h" #include "data/data_chat_filters.h" -#include "data/data_scheduled_messages.h" #include "data/data_send_action.h" #include "data/data_folder.h" #include "data/data_forum.h" @@ -590,7 +590,7 @@ not_null History::addNewItem( not_null item, bool unread) { if (item->isScheduled()) { - owner().scheduledMessages().appendSending(item); + session().scheduledMessages().appendSending(item); return item; } else if (item->isBusinessShortcut()) { owner().shortcutMessages().appendSending(item); diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 10dfc93f0..80a19453e 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -40,12 +40,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/timer_rpl.h" #include "api/api_text_entities.h" #include "api/api_updates.h" +#include "data/components/scheduled_messages.h" #include "data/components/sponsored_messages.h" #include "data/notify/data_notify_settings.h" #include "data/data_bot_app.h" #include "data/data_saved_messages.h" #include "data/data_saved_sublist.h" -#include "data/data_scheduled_messages.h" #include "data/data_changes.h" #include "data/data_session.h" #include "data/data_message_reactions.h" diff --git a/Telegram/SourceFiles/history/history_item_components.cpp b/Telegram/SourceFiles/history/history_item_components.cpp index f2ebc57c5..b8a64263b 100644 --- a/Telegram/SourceFiles/history/history_item_components.cpp +++ b/Telegram/SourceFiles/history/history_item_components.cpp @@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "media/audio/media_audio.h" #include "media/player/media_player_instance.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/stickers/data_custom_emoji.h" #include "data/data_channel.h" #include "data/data_media_types.h" @@ -42,7 +43,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_document.h" #include "data/data_web_page.h" #include "data/data_file_click_handler.h" -#include "data/data_scheduled_messages.h" #include "data/data_session.h" #include "data/data_stories.h" #include "main/main_session.h" @@ -301,7 +301,7 @@ ReplyFields ReplyFieldsFromMTP( const auto owner = &item->history()->owner(); if (const auto id = data.vreply_to_msg_id().value_or_empty()) { result.messageId = data.is_reply_to_scheduled() - ? owner->scheduledMessages().localMessageId(id) + ? owner->session().scheduledMessages().localMessageId(id) : item->shortcutId() ? owner->shortcutMessages().localMessageId(id) : id; diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 6938bafd8..e36501a74 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -54,6 +54,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/unixtime.h" #include "base/call_delayed.h" #include "data/business/data_shortcut_messages.h" +#include "data/components/scheduled_messages.h" #include "data/components/sponsored_messages.h" #include "data/notify/data_notify_settings.h" #include "data/data_changes.h" @@ -69,7 +70,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_forum_topic.h" #include "data/data_user.h" #include "data/data_chat_filters.h" -#include "data/data_scheduled_messages.h" #include "data/data_file_origin.h" #include "data/data_histories.h" #include "data/data_group_call.h" @@ -2772,9 +2772,9 @@ void HistoryWidget::setupScheduledToggle() { controller()->activeChatValue( ) | rpl::map([=](Dialogs::Key key) -> rpl::producer<> { if (const auto history = key.history()) { - return session().data().scheduledMessages().updates(history); + return session().scheduledMessages().updates(history); } else if (const auto topic = key.topic()) { - return session().data().scheduledMessages().updates( + return session().scheduledMessages().updates( topic->owningHistory()); } return rpl::never(); @@ -2789,7 +2789,7 @@ void HistoryWidget::setupScheduledToggle() { void HistoryWidget::refreshScheduledToggle() { const auto has = _history && _canSendMessages - && (session().data().scheduledMessages().count(_history) > 0); + && (session().scheduledMessages().count(_history) > 0); if (!_scheduled && has) { _scheduled.create(this, st::historyScheduledToggle); _scheduled->show(); diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index 9543eeae0..fe9ef26e8 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -52,6 +52,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/mime_type.h" #include "main/main_session.h" #include "main/main_session_settings.h" +#include "data/components/scheduled_messages.h" #include "data/data_session.h" #include "data/data_user.h" #include "data/data_chat.h" @@ -63,7 +64,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_changes.h" #include "data/data_shared_media.h" #include "data/data_send_action.h" -#include "data/data_scheduled_messages.h" #include "data/data_premium_limits.h" #include "storage/storage_media_prepare.h" #include "storage/storage_account.h" @@ -230,10 +230,9 @@ RepliesWidget::RepliesWidget( .stickerOrEmojiChosen = controller->stickerOrEmojiChosen(), .scheduledToggleValue = _topic ? rpl::single(rpl::empty_value()) | rpl::then( - session().data().scheduledMessages().updates( - _topic->owningHistory()) + session().scheduledMessages().updates(_topic->owningHistory()) ) | rpl::map([=] { - return session().data().scheduledMessages().hasFor(_topic); + return session().scheduledMessages().hasFor(_topic); }) | rpl::type_erased() : rpl::single(false), })) diff --git a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp index 6c989fd1e..667347423 100644 --- a/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_scheduled_section.cpp @@ -33,11 +33,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/mime_type.h" #include "chat_helpers/tabbed_selector.h" #include "main/main_session.h" +#include "data/components/scheduled_messages.h" #include "data/data_forum.h" #include "data/data_forum_topic.h" #include "data/data_session.h" #include "data/data_changes.h" -#include "data/data_scheduled_messages.h" #include "data/data_user.h" #include "data/data_message_reactions.h" #include "data/data_peer_values.h" @@ -58,7 +58,7 @@ namespace HistoryView { ScheduledMemento::ScheduledMemento(not_null history) : _history(history) , _forumTopic(nullptr) { - const auto list = _history->owner().scheduledMessages().list(_history); + const auto list = _history->session().scheduledMessages().list(_history); if (!list.ids.empty()) { _list.setScrollTopState({ .item = { .fullId = list.ids.front() } }); } @@ -67,7 +67,8 @@ ScheduledMemento::ScheduledMemento(not_null history) ScheduledMemento::ScheduledMemento(not_null forumTopic) : _history(forumTopic->owningHistory()) , _forumTopic(forumTopic) { - const auto list = _history->owner().scheduledMessages().list(_forumTopic); + const auto list = _history->session().scheduledMessages().list( + _forumTopic); if (!list.ids.empty()) { _list.setScrollTopState({ .item = { .fullId = list.ids.front() } }); } @@ -1193,13 +1194,13 @@ rpl::producer ScheduledWidget::listSource( Data::MessagePosition aroundId, int limitBefore, int limitAfter) { - const auto data = &controller()->session().data(); + const auto session = &controller()->session(); return rpl::single(rpl::empty) | rpl::then( - data->scheduledMessages().updates(_history) + session->scheduledMessages().updates(_history) ) | rpl::map([=] { return _forumTopic - ? data->scheduledMessages().list(_forumTopic) - : data->scheduledMessages().list(_history); + ? session->scheduledMessages().list(_forumTopic) + : session->scheduledMessages().list(_history); }) | rpl::after_next([=](const Data::MessagesSlice &slice) { highlightSingleNewMessage(slice); }); diff --git a/Telegram/SourceFiles/main/main_session.cpp b/Telegram/SourceFiles/main/main_session.cpp index 95d39c141..d0785b2bd 100644 --- a/Telegram/SourceFiles/main/main_session.cpp +++ b/Telegram/SourceFiles/main/main_session.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "storage/file_upload.h" #include "storage/storage_account.h" #include "storage/storage_facade.h" +#include "data/components/scheduled_messages.h" #include "data/components/sponsored_messages.h" #include "data/data_session.h" #include "data/data_changes.h" @@ -97,6 +98,7 @@ Session::Session( , _giftBoxStickersPacks(std::make_unique(this)) , _sendAsPeers(std::make_unique(this)) , _attachWebView(std::make_unique(this)) +, _scheduledMessages(std::make_unique(this)) , _sponsoredMessages(std::make_unique(this)) , _supportHelper(Support::Helper::Create(this)) , _saveSettingsTimer([=] { saveSettings(); }) { diff --git a/Telegram/SourceFiles/main/main_session.h b/Telegram/SourceFiles/main/main_session.h index 7346498d8..4249f888f 100644 --- a/Telegram/SourceFiles/main/main_session.h +++ b/Telegram/SourceFiles/main/main_session.h @@ -31,6 +31,7 @@ class Templates; namespace Data { class Session; class Changes; +class ScheduledMessages; class SponsoredMessages; } // namespace Data @@ -108,6 +109,9 @@ public: [[nodiscard]] Data::SponsoredMessages &sponsoredMessages() const { return *_sponsoredMessages; } + [[nodiscard]] Data::ScheduledMessages &scheduledMessages() const { + return *_scheduledMessages; + } [[nodiscard]] Api::Updates &updates() const { return *_updates; } @@ -228,6 +232,7 @@ private: const std::unique_ptr _giftBoxStickersPacks; const std::unique_ptr _sendAsPeers; const std::unique_ptr _attachWebView; + const std::unique_ptr _scheduledMessages; const std::unique_ptr _sponsoredMessages; const std::unique_ptr _supportHelper; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 5b8d4fc25..6cf5e55a2 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "api/api_views.h" +#include "data/components/scheduled_messages.h" #include "data/data_document_media.h" #include "data/data_document_resolver.h" #include "data/data_forum_topic.h" @@ -22,7 +23,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat.h" #include "data/data_user.h" #include "data/data_chat_filters.h" -#include "data/data_scheduled_messages.h" #include "data/data_file_origin.h" #include "data/data_histories.h" #include "data/stickers/data_stickers.h" diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index e03e69c52..510902a15 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -68,6 +68,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "info/profile/info_profile_values.h" #include "info/statistics/info_statistics_widget.h" #include "info/stories/info_stories_widget.h" +#include "data/components/scheduled_messages.h" #include "data/notify/data_notify_settings.h" #include "data/data_changes.h" #include "data/data_session.h" @@ -79,7 +80,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_forum_topic.h" #include "data/data_user.h" #include "data/data_saved_sublist.h" -#include "data/data_scheduled_messages.h" #include "data/data_histories.h" #include "data/data_chat_filters.h" #include "dialogs/dialogs_key.h" @@ -2255,8 +2255,8 @@ QPointer ShowSendNowMessagesBox( auto ids = QVector(); for (const auto item : session->data().idsToItems(list)) { if (item->allowsSendNow()) { - ids.push_back(MTP_int( - session->data().scheduledMessages().lookupId(item))); + ids.push_back( + MTP_int(session->scheduledMessages().lookupId(item))); } } session->api().request(MTPmessages_SendScheduledMessages(