From 099a3c4642b5a4d79dc6b87a7d7ed55b70fcbe28 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 25 Jan 2018 16:31:07 +0300 Subject: [PATCH] Fix paste of image from Firefox. It sometimes adds a strange path to empty temp file to mime data. --- .../SourceFiles/history/history_widget.cpp | 35 +++++++++---------- Telegram/SourceFiles/history/history_widget.h | 4 --- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 64d1673f8b..864e21c6ab 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -4050,16 +4050,6 @@ bool HistoryWidget::confirmSendingFiles(const QMimeData *data) { return confirmSendingFiles(data, CompressConfirm::Auto); } -bool HistoryWidget::confirmSendingFiles( - const QList &files, - CompressConfirm compressed, - const QString &insertTextOnCancel) { - return confirmSendingFiles( - Storage::PrepareMediaList(files, st::sendMediaPreviewSize), - compressed, - insertTextOnCancel); -} - bool HistoryWidget::confirmSendingFiles( const QStringList &files, CompressConfirm compressed, @@ -4145,17 +4135,26 @@ bool HistoryWidget::confirmSendingFiles( return false; } - const auto urls = data->urls(); - for (const auto &url : urls) { - if (url.isLocalFile()) { - // Don't insert list of filenames on cancel. - const auto emptyTextOnCancel = QString(); - confirmSendingFiles(urls, compressed, emptyTextOnCancel); - return true; + const auto hasImage = data->hasImage(); + + if (const auto urls = data->urls(); !urls.empty()) { + auto list = Storage::PrepareMediaList( + urls, + st::sendMediaPreviewSize); + if (list.error != Storage::PreparedList::Error::NonLocalUrl) { + if (list.error == Storage::PreparedList::Error::None + || !hasImage) { + const auto emptyTextOnCancel = QString(); + confirmSendingFiles( + std::move(list), + compressed, + emptyTextOnCancel); + return true; + } } } - if (data->hasImage()) { + if (hasImage) { auto image = qvariant_cast(data->imageData()); if (!image.isNull()) { confirmSendingFiles( diff --git a/Telegram/SourceFiles/history/history_widget.h b/Telegram/SourceFiles/history/history_widget.h index 494ac84e0c..4edf1d3d72 100644 --- a/Telegram/SourceFiles/history/history_widget.h +++ b/Telegram/SourceFiles/history/history_widget.h @@ -489,10 +489,6 @@ private: void unreadMentionsAnimationFinish(); void sendButtonClicked(); - bool confirmSendingFiles( - const QList &files, - CompressConfirm compressed, - const QString &insertTextOnCancel = QString()); bool confirmSendingFiles( const QStringList &files, CompressConfirm compressed,