diff --git a/Telegram/SourceFiles/editor/photo_editor_layer_widget.cpp b/Telegram/SourceFiles/editor/photo_editor_layer_widget.cpp index 45b7ff4712..49d48df3a9 100644 --- a/Telegram/SourceFiles/editor/photo_editor_layer_widget.cpp +++ b/Telegram/SourceFiles/editor/photo_editor_layer_widget.cpp @@ -27,20 +27,29 @@ void OpenWithPreparedFile( not_null file, int previewWidth, Fn &&doneCallback) { - - if (file->type != Ui::PreparedFile::Type::Photo) { - return; - } using ImageInfo = Ui::PreparedFileInformation::Image; const auto image = std::get_if(&file->information->media); if (!image) { return; } + const auto photoType = (file->type == Ui::PreparedFile::Type::Photo); + const auto modifiedFileType = (file->type == Ui::PreparedFile::Type::File) + && !image->modifications.empty(); + if (!photoType && !modifiedFileType) { + return; + } auto callback = [=, done = std::move(doneCallback)]( const PhotoModifications &mods) { image->modifications = mods; Storage::UpdateImageDetails(*file, previewWidth); + { + using namespace Ui; + const auto size = file->preview.size(); + file->type = ValidateThumbDimensions(size.width(), size.height()) + ? PreparedFile::Type::Photo + : PreparedFile::Type::File; + } done(); }; auto copy = image->data; diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_single_media_preview.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_single_media_preview.cpp index ca688662cf..db22ec37d7 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_single_media_preview.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_single_media_preview.cpp @@ -20,12 +20,14 @@ SingleMediaPreview *SingleMediaPreview::Create( const PreparedFile &file, AttachControls::Type type) { auto preview = QImage(); - bool animated = false; - bool animationPreview = false; + auto animated = false; + auto animationPreview = false; + auto hasModifications = false; if (const auto image = std::get_if( &file.information->media)) { preview = Editor::ImageModified(image->data, image->modifications); animated = animationPreview = image->animated; + hasModifications = !image->modifications.empty(); } else if (const auto video = std::get_if( &file.information->media)) { preview = video->thumbnail; @@ -34,9 +36,9 @@ SingleMediaPreview *SingleMediaPreview::Create( } if (preview.isNull()) { return nullptr; - } else if (!animated && !ValidateThumbDimensions( - preview.width(), - preview.height())) { + } else if (!animated + && !ValidateThumbDimensions(preview.width(), preview.height()) + && !hasModifications) { return nullptr; } return CreateChild(