From f63357bd29944c777de2954289d9573922fe8222 Mon Sep 17 00:00:00 2001 From: Eike Hein Date: Tue, 6 Aug 2013 11:59:03 +0200 Subject: [PATCH] Make the setData() accessor take a QVariant as payload. The implementation now specifically tries to support byte arrays being passed in, which is what the base class speaks. To try and retain the previous behavior anything else is attempted to be converted to a string and failing that, silently dropped. REVIEW:111748 CCBUG:322567 --- .../draganddrop/DeclarativeMimeData.cpp | 8 ++++++-- src/declarativeimports/draganddrop/DeclarativeMimeData.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/declarativeimports/draganddrop/DeclarativeMimeData.cpp b/src/declarativeimports/draganddrop/DeclarativeMimeData.cpp index e7cab1083..6b72098eb 100644 --- a/src/declarativeimports/draganddrop/DeclarativeMimeData.cpp +++ b/src/declarativeimports/draganddrop/DeclarativeMimeData.cpp @@ -118,9 +118,13 @@ void DeclarativeMimeData::setColor(const QColor &color) } } -void DeclarativeMimeData::setData(const QString &mimeType, const QString &data) +void DeclarativeMimeData::setData(const QString &mimeType, const QVariant &data) { - QMimeData::setData(mimeType, data.toLatin1()); + if (data.type() == QVariant::ByteArray) { + QMimeData::setData(mimeType, data.toByteArray()); + } else if (data.canConvert(QVariant::String)) { + QMimeData::setData(mimeType, data.toString().toLatin1()); + } } /*! diff --git a/src/declarativeimports/draganddrop/DeclarativeMimeData.h b/src/declarativeimports/draganddrop/DeclarativeMimeData.h index ec725af06..797546c7b 100644 --- a/src/declarativeimports/draganddrop/DeclarativeMimeData.h +++ b/src/declarativeimports/draganddrop/DeclarativeMimeData.h @@ -78,7 +78,7 @@ public: QColor color() const; void setColor(const QColor &color); - Q_INVOKABLE void setData(const QString &mimeType, const QString &data); + Q_INVOKABLE void setData(const QString &mimeType, const QVariant &data); QQuickItem* source() const; void setSource(QQuickItem* source);