diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-09-10 19:51:38 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-09-21 14:56:09 +0200 |
commit | 848927b688d4709d0b71590518e2c32fe7866147 (patch) | |
tree | 67c7db42436563299ab8fc713dbc91ce31eaf508 /src/gui | |
parent | cf015cd08bc7a977b6bacac3575952a77e0c0cad (diff) |
Cleanup API of QMimeData
Do not use QVariant::Type anymore, instead use QMetaType
For some reason, this pushed the qvariant autotest over the limit where
MSVC requires the /bigobj flag, so add that one.
[ChangeLog][QtCore][QMimeData] The signature of the virtual retrieveData()
function has changed and now takes a QMetaType instead of a QVariant::Type.
Change-Id: Ib46773bd731ee2177b1ef74d8162d744be7017ef
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qinternalmimedata.cpp | 14 | ||||
-rw-r--r-- | src/gui/kernel/qinternalmimedata_p.h | 4 | ||||
-rw-r--r-- | src/gui/platform/windows/qwindowsmime_p.h | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/gui/kernel/qinternalmimedata.cpp b/src/gui/kernel/qinternalmimedata.cpp index d5cdc743ee..5dc296cd01 100644 --- a/src/gui/kernel/qinternalmimedata.cpp +++ b/src/gui/kernel/qinternalmimedata.cpp @@ -108,27 +108,27 @@ QStringList QInternalMimeData::formats() const return realFormats; } -QVariant QInternalMimeData::retrieveData(const QString &mimeType, QVariant::Type type) const +QVariant QInternalMimeData::retrieveData(const QString &mimeType, QMetaType type) const { QVariant data = retrieveData_sys(mimeType, type); if (mimeType == QLatin1String("application/x-qt-image")) { - if (data.isNull() || (data.userType() == QMetaType::QByteArray && data.toByteArray().isEmpty())) { + if (data.isNull() || (data.metaType().id() == QMetaType::QByteArray && data.toByteArray().isEmpty())) { // try to find an image QStringList imageFormats = imageReadMimeFormats(); for (int i = 0; i < imageFormats.size(); ++i) { data = retrieveData_sys(imageFormats.at(i), type); - if (data.isNull() || (data.userType() == QMetaType::QByteArray && data.toByteArray().isEmpty())) + if (data.isNull() || (data.metaType().id() == QMetaType::QByteArray && data.toByteArray().isEmpty())) continue; break; } } - int typeId = type; + int typeId = type.id(); // we wanted some image type, but all we got was a byte array. Convert it to an image. - if (data.userType() == QMetaType::QByteArray + if (data.metaType().id() == QMetaType::QByteArray && (typeId == QMetaType::QImage || typeId == QMetaType::QPixmap || typeId == QMetaType::QBitmap)) data = QImage::fromData(data.toByteArray()); - } else if (mimeType == QLatin1String("application/x-color") && data.userType() == QMetaType::QByteArray) { + } else if (mimeType == QLatin1String("application/x-color") && data.metaType().id() == QMetaType::QByteArray) { QColor c; QByteArray ba = data.toByteArray(); if (ba.size() == 8) { @@ -141,7 +141,7 @@ QVariant QInternalMimeData::retrieveData(const QString &mimeType, QVariant::Type } else { qWarning("Qt: Invalid color format"); } - } else if (data.userType() != int(type) && data.userType() == QMetaType::QByteArray) { + } else if (data.metaType() != type && data.metaType().id() == QMetaType::QByteArray) { // try to use mime data's internal conversion stuf. QInternalMimeData *that = const_cast<QInternalMimeData *>(this); that->setData(mimeType, data.toByteArray()); diff --git a/src/gui/kernel/qinternalmimedata_p.h b/src/gui/kernel/qinternalmimedata_p.h index aa5e896323..5c61370360 100644 --- a/src/gui/kernel/qinternalmimedata_p.h +++ b/src/gui/kernel/qinternalmimedata_p.h @@ -81,11 +81,11 @@ public: static QByteArray renderDataHelper(const QString &mimeType, const QMimeData *data); protected: - QVariant retrieveData(const QString &mimeType, QVariant::Type type) const override; + QVariant retrieveData(const QString &mimeType, QMetaType type) const override; virtual bool hasFormat_sys(const QString &mimeType) const = 0; virtual QStringList formats_sys() const = 0; - virtual QVariant retrieveData_sys(const QString &mimeType, QVariant::Type type) const = 0; + virtual QVariant retrieveData_sys(const QString &mimeType, QMetaType type) const = 0; }; QT_END_NAMESPACE diff --git a/src/gui/platform/windows/qwindowsmime_p.h b/src/gui/platform/windows/qwindowsmime_p.h index 91b1d104b7..5d71b9ee94 100644 --- a/src/gui/platform/windows/qwindowsmime_p.h +++ b/src/gui/platform/windows/qwindowsmime_p.h @@ -74,7 +74,7 @@ public: // for converting to Qt virtual bool canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const = 0; - virtual QVariant convertToMime(const QString &mimeType, IDataObject *pDataObj, QVariant::Type preferredType) const = 0; + virtual QVariant convertToMime(const QString &mimeType, IDataObject *pDataObj, QMetaType preferredType) const = 0; virtual QString mimeForFormat(const FORMATETC &formatetc) const = 0; }; |