Skip to content
Snippets Groups Projects
Commit c4b78891 authored by Thulinma's avatar Thulinma
Browse files

Fixes for pasting images, especially under windows where the image mime type...

Fixes for pasting images, especially under windows where the image mime type detection doesn't work as expected
parent 6941c3d3
No related branches found
No related tags found
No related merge requests found
Pipeline #1828 failed
...@@ -45,10 +45,8 @@ InputBar::paste(bool fromMouse) ...@@ -45,10 +45,8 @@ InputBar::paste(bool fromMouse)
{ {
const QMimeData *md = nullptr; const QMimeData *md = nullptr;
if (fromMouse) { if (fromMouse && QGuiApplication::clipboard()->supportsSelection()) {
if (QGuiApplication::clipboard()->supportsSelection()) { md = QGuiApplication::clipboard()->mimeData(QClipboard::Selection);
md = QGuiApplication::clipboard()->mimeData(QClipboard::Selection);
}
} else { } else {
md = QGuiApplication::clipboard()->mimeData(QClipboard::Clipboard); md = QGuiApplication::clipboard()->mimeData(QClipboard::Clipboard);
} }
...@@ -69,7 +67,7 @@ InputBar::insertMimeData(const QMimeData *md) ...@@ -69,7 +67,7 @@ InputBar::insertMimeData(const QMimeData *md)
const auto audio = formats.filter("audio/", Qt::CaseInsensitive); const auto audio = formats.filter("audio/", Qt::CaseInsensitive);
const auto video = formats.filter("video/", Qt::CaseInsensitive); const auto video = formats.filter("video/", Qt::CaseInsensitive);
if (!image.empty() && md->hasImage()) { if (md->hasImage()) {
showPreview(*md, "", image); showPreview(*md, "", image);
} else if (!audio.empty()) { } else if (!audio.empty()) {
showPreview(*md, "", audio); showPreview(*md, "", audio);
...@@ -653,9 +651,15 @@ InputBar::showPreview(const QMimeData &source, QString path, const QStringList & ...@@ -653,9 +651,15 @@ InputBar::showPreview(const QMimeData &source, QString path, const QStringList &
new dialogs::PreviewUploadOverlay(ChatPage::instance()); new dialogs::PreviewUploadOverlay(ChatPage::instance());
previewDialog_->setAttribute(Qt::WA_DeleteOnClose); previewDialog_->setAttribute(Qt::WA_DeleteOnClose);
if (source.hasImage()) if (source.hasImage()) {
previewDialog_->setPreview(qvariant_cast<QImage>(source.imageData()), formats.front()); if (formats.size() && formats.front().startsWith("image/")) {
else if (!path.isEmpty()) // known format, keep as-is
previewDialog_->setPreview(qvariant_cast<QImage>(source.imageData()), formats.front());
} else {
// unknown image format, default to image/png
previewDialog_->setPreview(qvariant_cast<QImage>(source.imageData()), "image/png");
}
} else if (!path.isEmpty())
previewDialog_->setPreview(path); previewDialog_->setPreview(path);
else if (!formats.isEmpty()) { else if (!formats.isEmpty()) {
auto mime = formats.first(); auto mime = formats.first();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment