From: Friedemann Kleint Date: Mon, 24 Aug 2015 09:57:31 +0000 (+0200) Subject: QWindowsMimeImage: Revert image format handling back to Qt 4. X-Git-Tag: v5.5.90+alpha1~18^2^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bc867b179451a4c06c669f03f4598ea8799ad9f6;p=platform%2Fupstream%2Fqtbase.git QWindowsMimeImage: Revert image format handling back to Qt 4. Effectively revert 9150563940f61be9fb17510be49c0734244866a5 for QTBUG-11463 (offering only CF_DIB5 for images of format ARGB32) and 4018cd3529ded32f3434095a2da2568d52dfe16a for QTBUG-46848 adding support for "PNG". The changes broke pasting images into MS Office since it can only handle plain CF_DIB and gets confused if "PNG" is returned as available format. Task-number: QTBUG-47656 Task-number: QTBUG-11463 Task-number: QTBUG-46848 Change-Id: I9b641b4b912b7b16a2f58bc84fa09c28a64e91c8 Reviewed-by: aavit --- diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp index f86ab9fee3..622352e987 100644 --- a/src/plugins/platforms/windows/qwindowsmime.cpp +++ b/src/plugins/platforms/windows/qwindowsmime.cpp @@ -990,12 +990,11 @@ QVector QWindowsMimeImage::formatsForMime(const QString &mimeType, co { QVector formatetcs; if (mimeData->hasImage() && mimeType == QLatin1String("application/x-qt-image")) { - //add DIBV5 if image has alpha channel + //add DIBV5 if image has alpha channel. Do not add CF_PNG here as it will confuse MS Office (QTBUG47656). QImage image = qvariant_cast(mimeData->imageData()); if (!image.isNull() && image.hasAlphaChannel()) formatetcs += setCf(CF_DIBV5); formatetcs += setCf(CF_DIB); - formatetcs += setCf(CF_PNG); // QTBUG-86848, Paste into GIMP queries for PNG. } return formatetcs; } @@ -1024,11 +1023,7 @@ bool QWindowsMimeImage::canConvertFromMime(const FORMATETC &formatetc, const QMi const QImage image = qvariant_cast(mimeData->imageData()); if (image.isNull()) return false; - // QTBUG-11463, deny CF_DIB support for images with alpha to prevent loss of - // transparency in conversion. - return cf == CF_DIBV5 - || (cf == CF_DIB && !image.hasAlphaChannel()) - || cf == int(CF_PNG); + return cf == CF_DIBV5 || (cf == CF_DIB) || cf == int(CF_PNG); } bool QWindowsMimeImage::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM * pmedium) const