From 9e72b8996b64af22fafcc32daf0845534d535841 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 25 Aug 2015 10:31:37 +0200 Subject: [PATCH 2/3] Windows QPA: Refactor mime format handling code. Remove static function getCf() which returned the format value of the FORMATETC struct and fix member variable naming. Change-Id: I4ed2f3a7d1e93bc16d7b1dc42688c7efc38010c3 --- src/plugins/platforms/windows/qwindowsmime.cpp | 57 +++++++++++--------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp index 622352e..b463c1c 100644 --- a/src/plugins/platforms/windows/qwindowsmime.cpp +++ b/src/plugins/platforms/windows/qwindowsmime.cpp @@ -303,11 +303,6 @@ static bool qt_read_dibv5(QDataStream &s, QImage &image) // helpers for using global memory -static int getCf(const FORMATETC &formatetc) -{ - return formatetc.cfFormat; -} - static FORMATETC setCf(int cf) { FORMATETC formatetc; @@ -521,8 +516,7 @@ public: bool QWindowsMimeText::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const { - int cf = getCf(formatetc); - return (cf == CF_UNICODETEXT || cf == CF_TEXT) && mimeData->hasText(); + return (formatetc.cfFormat == CF_UNICODETEXT || formatetc.cfFormat == CF_TEXT) && mimeData->hasText(); } /* @@ -534,8 +528,7 @@ bool QWindowsMimeText::convertFromMime(const FORMATETC &formatetc, const QMimeDa { if (canConvertFromMime(formatetc, mimeData)) { QByteArray data; - int cf = getCf(formatetc); - if (cf == CF_TEXT) { + if (formatetc.cfFormat == CF_TEXT) { data = mimeData->text().toLocal8Bit(); // Anticipate required space for CRLFs at 1/40 int maxsize=data.size()+data.size()/40+3; @@ -565,7 +558,7 @@ bool QWindowsMimeText::convertFromMime(const FORMATETC &formatetc, const QMimeDa } o[j]=0; return setData(r, pmedium); - } else if (cf == CF_UNICODETEXT) { + } else if (formatetc.cfFormat == CF_UNICODETEXT) { QString str = mimeData->text(); const QChar *u = str.unicode(); QString res; @@ -610,8 +603,7 @@ bool QWindowsMimeText::canConvertToMime(const QString &mimeType, IDataObject *pD QString QWindowsMimeText::mimeForFormat(const FORMATETC &formatetc) const { - int cf = getCf(formatetc); - if (cf == CF_UNICODETEXT || cf == CF_TEXT) + if (formatetc.cfFormat == CF_UNICODETEXT || formatetc.cfFormat == CF_TEXT) return QStringLiteral("text/plain"); return QString(); } @@ -686,20 +678,20 @@ QWindowsMimeURI::QWindowsMimeURI() bool QWindowsMimeURI::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const { - if (mimeData->hasUrls() && getCf(formatetc) == CF_HDROP) { + if (mimeData->hasUrls() && formatetc.cfFormat == CF_HDROP) { QList urls = mimeData->urls(); for (int i=0; ihasUrls(); + return (formatetc.cfFormat == CF_INETURL_W || formatetc.cfFormat == CF_INETURL) && mimeData->hasUrls(); } bool QWindowsMimeURI::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM *pmedium) const { if (canConvertFromMime(formatetc, mimeData)) { - if (getCf(formatetc) == CF_HDROP) { + if (formatetc.cfFormat == CF_HDROP) { QList urls = mimeData->urls(); QStringList fileNames; int size = sizeof(DROPFILES)+2; @@ -729,7 +721,7 @@ bool QWindowsMimeURI::convertFromMime(const FORMATETC &formatetc, const QMimeDat *f = 0; return setData(result, pmedium); - } else if (getCf(formatetc) == CF_INETURL_W) { + } else if (formatetc.cfFormat == CF_INETURL_W) { QList urls = mimeData->urls(); QByteArray result; if (!urls.isEmpty()) { @@ -739,7 +731,7 @@ bool QWindowsMimeURI::convertFromMime(const FORMATETC &formatetc, const QMimeDat result.append('\0'); result.append('\0'); return setData(result, pmedium); - } else if (getCf(formatetc) == CF_INETURL) { + } else if (formatetc.cfFormat == CF_INETURL) { QList urls = mimeData->urls(); QByteArray result; if (!urls.isEmpty()) @@ -760,7 +752,7 @@ bool QWindowsMimeURI::canConvertToMime(const QString &mimeType, IDataObject *pDa QString QWindowsMimeURI::mimeForFormat(const FORMATETC &formatetc) const { QString format; - if (getCf(formatetc) == CF_HDROP || getCf(formatetc) == CF_INETURL_W || getCf(formatetc) == CF_INETURL) + if (formatetc.cfFormat == CF_HDROP || formatetc.cfFormat == CF_INETURL_W || formatetc.cfFormat == CF_INETURL) format = QStringLiteral("text/uri-list"); return format; } @@ -860,7 +852,7 @@ QVector QWindowsMimeHtml::formatsForMime(const QString &mimeType, con QString QWindowsMimeHtml::mimeForFormat(const FORMATETC &formatetc) const { - if (getCf(formatetc) == CF_HTML) + if (formatetc.cfFormat == CF_HTML) return QStringLiteral("text/html"); return QString(); } @@ -873,7 +865,7 @@ bool QWindowsMimeHtml::canConvertToMime(const QString &mimeType, IDataObject *pD bool QWindowsMimeHtml::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const { - return getCf(formatetc) == CF_HTML && (!mimeData->html().isEmpty()); + return formatetc.cfFormat == CF_HTML && (!mimeData->html().isEmpty()); } /* @@ -1001,8 +993,7 @@ QVector QWindowsMimeImage::formatsForMime(const QString &mimeType, co QString QWindowsMimeImage::mimeForFormat(const FORMATETC &formatetc) const { - int cf = getCf(formatetc); - if (cf == CF_DIB || cf == CF_DIBV5 || cf == int(CF_PNG)) + if (formatetc.cfFormat == CF_DIB || formatetc.cfFormat == CF_DIBV5 || formatetc.cfFormat == CF_PNG) return QStringLiteral("application/x-qt-image"); return QString(); } @@ -1017,30 +1008,28 @@ bool QWindowsMimeImage::canConvertToMime(const QString &mimeType, IDataObject *p bool QWindowsMimeImage::canConvertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData) const { - int cf = getCf(formatetc); if (!mimeData->hasImage()) return false; const QImage image = qvariant_cast(mimeData->imageData()); if (image.isNull()) return false; - return cf == CF_DIBV5 || (cf == CF_DIB) || cf == int(CF_PNG); + return formatetc.cfFormat == CF_DIBV5 || formatetc.cfFormat == CF_DIB || formatetc.cfFormat == CF_PNG; } bool QWindowsMimeImage::convertFromMime(const FORMATETC &formatetc, const QMimeData *mimeData, STGMEDIUM * pmedium) const { - int cf = getCf(formatetc); - if ((cf == CF_DIB || cf == CF_DIBV5 || cf == int(CF_PNG)) && mimeData->hasImage()) { + if ((formatetc.cfFormat == CF_DIB || formatetc.cfFormat == CF_DIBV5 || formatetc.cfFormat == CF_PNG) && mimeData->hasImage()) { QImage img = qvariant_cast(mimeData->imageData()); if (img.isNull()) return false; QByteArray ba; - if (cf == CF_DIB) { + if (formatetc.cfFormat == CF_DIB) { if (img.format() > QImage::Format_ARGB32) img = img.convertToFormat(QImage::Format_RGB32); const QByteArray ba = writeDib(img); if (!ba.isEmpty()) return setData(ba, pmedium); - } else if (cf == int(CF_PNG)) { + } else if (formatetc.cfFormat == int(CF_PNG)) { QBuffer buffer(&ba); const bool written = buffer.open(QIODevice::WriteOnly) && img.save(&buffer, "PNG"); buffer.close(); @@ -1153,7 +1142,7 @@ bool QBuiltInMimes::convertFromMime(const FORMATETC &formatetc, const QMimeData { if (canConvertFromMime(formatetc, mimeData)) { QByteArray data; - if (outFormats.value(getCf(formatetc)) == QLatin1String("text/html")) { + if (outFormats.value(formatetc.cfFormat) == QLatin1String("text/html")) { // text/html is in wide chars on windows (compatible with mozillia) QString html = mimeData->html(); // same code as in the text converter up above @@ -1188,7 +1177,7 @@ bool QBuiltInMimes::convertFromMime(const FORMATETC &formatetc, const QMimeData data = r; } else { #ifndef QT_NO_DRAGANDDROP - data = QInternalMimeData::renderDataHelper(outFormats.value(getCf(formatetc)), mimeData); + data = QInternalMimeData::renderDataHelper(outFormats.value(formatetc.cfFormat), mimeData); #endif //QT_NO_DRAGANDDROP } return setData(data, pmedium); @@ -1232,7 +1221,7 @@ QVariant QBuiltInMimes::convertToMime(const QString &mimeType, IDataObject *pDat QString QBuiltInMimes::mimeForFormat(const FORMATETC &formatetc) const { - return inFormats.value(getCf(formatetc)); + return inFormats.value(formatetc.cfFormat); } @@ -1305,7 +1294,7 @@ bool QLastResortMimes::convertFromMime(const FORMATETC &formatetc, const QMimeDa { #ifndef QT_NO_DRAGANDDROP return canConvertFromMime(formatetc, mimeData) - && setData(QInternalMimeData::renderDataHelper(formats.value(getCf(formatetc)), mimeData), pmedium); + && setData(QInternalMimeData::renderDataHelper(formats.value(formatetc.cfFormat), mimeData), pmedium); #else Q_UNUSED(mimeData); Q_UNUSED(formatetc); @@ -1396,12 +1385,12 @@ QVariant QLastResortMimes::convertToMime(const QString &mimeType, IDataObject *p QString QLastResortMimes::mimeForFormat(const FORMATETC &formatetc) const { - QString format = formats.value(getCf(formatetc)); + QString format = formats.value(formatetc.cfFormat); if (!format.isEmpty()) return format; wchar_t buffer[256]; - int len = GetClipboardFormatName(getCf(formatetc), buffer, 256); + int len = GetClipboardFormatName(formatetc.cfFormat, buffer, 256); if (len) { QString clipFormat = QString::fromWCharArray(buffer, len); -- 1.8.3.msysgit.0