diff options
author | Morten Johan Sorvig <morten.sorvig@nokia.com> | 2012-05-23 12:31:39 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-24 14:20:11 +0200 |
commit | 48e104aa1d7e3e8b42f239126fee756c6c920a1a (patch) | |
tree | 63c4d1e205aa1e0c5372f4fa8c5e1428a013cc48 /src/plugins | |
parent | 4b4975ceaec07ca7284be6ea852720477090afd9 (diff) |
Add QMacPasteboardMime::count(QMimeData*).
As QTBUG-25076 points out, the ### comment indicates
that we want to add virtual function to
QMacPasteboardMime.
The default implementation returns 1. Reimplement
for QMacPastebardMimeUrl and return the url count.
Change-Id: Ie300574eab9991af625986805d2b030914291cc0
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qmacclipboard.mm | 10 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qmacmime.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qmacmime.mm | 14 |
3 files changed, 17 insertions, 8 deletions
diff --git a/src/plugins/platforms/cocoa/qmacclipboard.mm b/src/plugins/platforms/cocoa/qmacclipboard.mm index 73abd8945c..b769b2c7ed 100644 --- a/src/plugins/platforms/cocoa/qmacclipboard.mm +++ b/src/plugins/platforms/cocoa/qmacclipboard.mm @@ -305,14 +305,8 @@ QMacPasteboard::setMimeData(QMimeData *mime_src) QString flavor(c->flavorFor(mimeType)); if (!flavor.isEmpty()) { QVariant mimeData = static_cast<QMacMimeData*>(mime_src)->variantData(mimeType); -#if 0 - //### Grrr, why didn't I put in a virtual int QMacPasteboardMime::count()? --Sam - const int numItems = c->convertFromMime(mimeType, mimeData, flavor).size(); -#else - int numItems = 1; //this is a hack but it is much faster than allowing conversion above - if (c->convertorName() == QLatin1String("FileURL")) - numItems = mime_src->urls().count(); -#endif + + int numItems = c->count(mime_src); for (int item = 0; item < numItems; ++item) { const int itemID = item+1; //id starts at 1 promises.append(QMacPasteboard::Promise(itemID, c, mimeType, mimeData, item)); diff --git a/src/plugins/platforms/cocoa/qmacmime.h b/src/plugins/platforms/cocoa/qmacmime.h index 12c9aff039..53f474a95f 100644 --- a/src/plugins/platforms/cocoa/qmacmime.h +++ b/src/plugins/platforms/cocoa/qmacmime.h @@ -74,6 +74,7 @@ public: virtual QString flavorFor(const QString &mime) = 0; virtual QVariant convertToMime(const QString &mime, QList<QByteArray> data, QString flav) = 0; virtual QList<QByteArray> convertFromMime(const QString &mime, QVariant data, QString flav) = 0; + virtual int count(QMimeData *mimeData); }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/cocoa/qmacmime.mm b/src/plugins/platforms/cocoa/qmacmime.mm index 8cb684fbea..2895d7dda8 100644 --- a/src/plugins/platforms/cocoa/qmacmime.mm +++ b/src/plugins/platforms/cocoa/qmacmime.mm @@ -168,6 +168,14 @@ QMacPasteboardMime::~QMacPasteboardMime() globalMimeList()->removeAll(this); } +/*! + Returns the item count for the given \a mimeData +*/ +int QMacPasteboardMime::count(QMimeData *mimeData) +{ + return 1; +} + class QMacPasteboardMimeAny : public QMacPasteboardMime { private: @@ -586,6 +594,7 @@ public: bool canConvert(const QString &mime, QString flav); QVariant convertToMime(const QString &mime, QList<QByteArray> data, QString flav); QList<QByteArray> convertFromMime(const QString &mime, QVariant data, QString flav); + int count(QMimeData *mimeData); }; QString QMacPasteboardMimeFileUri::convertorName() @@ -648,6 +657,11 @@ QList<QByteArray> QMacPasteboardMimeFileUri::convertFromMime(const QString &mime return ret; } +int QMacPasteboardMimeFileUri::count(QMimeData *mimeData) +{ + return mimeData->urls().count(); +} + class QMacPasteboardMimeUrl : public QMacPasteboardMime { public: QMacPasteboardMimeUrl() : QMacPasteboardMime(MIME_ALL) { } |