Fix paste of image from Firefox.

It sometimes adds a strange path to empty temp file to mime data.
This commit is contained in:
John Preston 2018-01-25 16:31:07 +03:00
parent 9515520088
commit 099a3c4642
2 changed files with 17 additions and 22 deletions

View File

@ -4050,16 +4050,6 @@ bool HistoryWidget::confirmSendingFiles(const QMimeData *data) {
return confirmSendingFiles(data, CompressConfirm::Auto); return confirmSendingFiles(data, CompressConfirm::Auto);
} }
bool HistoryWidget::confirmSendingFiles(
const QList<QUrl> &files,
CompressConfirm compressed,
const QString &insertTextOnCancel) {
return confirmSendingFiles(
Storage::PrepareMediaList(files, st::sendMediaPreviewSize),
compressed,
insertTextOnCancel);
}
bool HistoryWidget::confirmSendingFiles( bool HistoryWidget::confirmSendingFiles(
const QStringList &files, const QStringList &files,
CompressConfirm compressed, CompressConfirm compressed,
@ -4145,17 +4135,26 @@ bool HistoryWidget::confirmSendingFiles(
return false; return false;
} }
const auto urls = data->urls(); const auto hasImage = data->hasImage();
for (const auto &url : urls) {
if (url.isLocalFile()) { if (const auto urls = data->urls(); !urls.empty()) {
// Don't insert list of filenames on cancel. 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(); const auto emptyTextOnCancel = QString();
confirmSendingFiles(urls, compressed, emptyTextOnCancel); confirmSendingFiles(
std::move(list),
compressed,
emptyTextOnCancel);
return true; return true;
} }
} }
}
if (data->hasImage()) { if (hasImage) {
auto image = qvariant_cast<QImage>(data->imageData()); auto image = qvariant_cast<QImage>(data->imageData());
if (!image.isNull()) { if (!image.isNull()) {
confirmSendingFiles( confirmSendingFiles(

View File

@ -489,10 +489,6 @@ private:
void unreadMentionsAnimationFinish(); void unreadMentionsAnimationFinish();
void sendButtonClicked(); void sendButtonClicked();
bool confirmSendingFiles(
const QList<QUrl> &files,
CompressConfirm compressed,
const QString &insertTextOnCancel = QString());
bool confirmSendingFiles( bool confirmSendingFiles(
const QStringList &files, const QStringList &files,
CompressConfirm compressed, CompressConfirm compressed,