diff --git a/Telegram/SourceFiles/editor/scene/scene.cpp b/Telegram/SourceFiles/editor/scene/scene.cpp index 923d44250..0ebb29ced 100644 --- a/Telegram/SourceFiles/editor/scene/scene.cpp +++ b/Telegram/SourceFiles/editor/scene/scene.cpp @@ -120,18 +120,6 @@ std::vector Scene::items( return copyItems; } -std::vector> Scene::attachedStickers() const { - const auto allItems = items(); - - return ranges::views::all( - allItems - ) | ranges::views::filter([](const ItemPtr &i) { - return i->isVisible() && (i->type() == ItemSticker::Type); - }) | ranges::views::transform([](const ItemPtr &i) { - return static_cast(i.get())->sticker(); - }) | ranges::to_vector; -} - std::shared_ptr Scene::lastZ() const { return _lastZ; } diff --git a/Telegram/SourceFiles/editor/scene/scene.h b/Telegram/SourceFiles/editor/scene/scene.h index 2c9354f6f..d23423107 100644 --- a/Telegram/SourceFiles/editor/scene/scene.h +++ b/Telegram/SourceFiles/editor/scene/scene.h @@ -39,9 +39,6 @@ public: [[nodiscard]] rpl::producer<> addsItem() const; [[nodiscard]] rpl::producer<> removesItem() const; - [[nodiscard]] auto attachedStickers() const - -> std::vector>; - [[nodiscard]] std::shared_ptr lastZ() const; void updateZoom(float64 zoom); diff --git a/Telegram/SourceFiles/storage/localimageloader.cpp b/Telegram/SourceFiles/storage/localimageloader.cpp index e54604d59..6f5784c0b 100644 --- a/Telegram/SourceFiles/storage/localimageloader.cpp +++ b/Telegram/SourceFiles/storage/localimageloader.cpp @@ -15,7 +15,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/mime_type.h" #include "base/unixtime.h" #include "base/random.h" -#include "editor/scene/scene.h" // Editor::Scene::attachedStickers +#include "editor/scene/scene_item_sticker.h" +#include "editor/scene/scene.h" #include "media/audio/media_audio.h" #include "media/clip/media_clip_reader.h" #include "mtproto/facade.h" @@ -148,6 +149,18 @@ MTPInputSingleMedia PrepareAlbumItemMedia( sentEntities); } +std::vector> ExtractStickersFromScene( + not_null info) { + const auto allItems = info->modifications.paint->items(); + + return ranges::views::all( + allItems + ) | ranges::views::filter([](const Editor::Scene::ItemPtr &i) { + return i->isVisible() && (i->type() == Editor::ItemSticker::Type); + }) | ranges::views::transform([](const Editor::Scene::ItemPtr &i) { + return static_cast(i.get())->sticker(); + }) | ranges::to_vector; +} } // namespace @@ -948,8 +961,7 @@ void FileLoadTask::process(Args &&args) { if (auto image = std::get_if( &_information->media)) { if (image->modifications.paint) { - const auto documents - = image->modifications.paint->attachedStickers(); + const auto documents = ExtractStickersFromScene(image); _result->attachedStickers = documents | ranges::view::transform(&DocumentData::mtpInput) | ranges::to_vector;