diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-11-03 12:57:42 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-11-07 09:31:13 +0100 |
commit | 2c54086317d683193dd8169822d87bc64d00ca4c (patch) | |
tree | 8e56307c7e0309384047cb9b6a70a714384af7cd /src | |
parent | 9f35db2a8af2b9c6b275d893c0b3fab15f656684 (diff) |
QMacMime API cleanup: use uti instead of flavor
Update documentation.
Task-number: QTBUG-93632
Change-Id: I69a57608ba2a06211e89fcf511bc582509c00dc4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/platform/darwin/qmacmime.mm | 502 | ||||
-rw-r--r-- | src/gui/platform/darwin/qmacmime_p.h | 10 | ||||
-rw-r--r-- | src/gui/platform/darwin/qmacmimeregistry.mm | 10 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamimetypes.mm | 28 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qmacclipboard.mm | 48 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qiosclipboard.mm | 4 |
6 files changed, 312 insertions, 290 deletions
diff --git a/src/gui/platform/darwin/qmacmime.mm b/src/gui/platform/darwin/qmacmime.mm index b6ee1219dc..eb7d0f9875 100644 --- a/src/gui/platform/darwin/qmacmime.mm +++ b/src/gui/platform/darwin/qmacmime.mm @@ -34,58 +34,55 @@ using namespace Qt::StringLiterals; //#define DEBUG_MIME_MAPS /*! - \class QMacMime - \internal - \brief The QMacMime class converts between a MIME type and a - \l{http://developer.apple.com/macosx/uniformtypeidentifiers.html}{Uniform - Type Identifier (UTI)} format. - \since 4.2 - - \ingroup draganddrop - \inmodule QtWidgets - - Qt's drag and drop and clipboard facilities use the MIME - standard. On X11, this maps trivially to the Xdnd protocol. On - Mac, although some applications use MIME to describe clipboard - contents, it is more common to use Apple's UTI format. - - QMacMime's role is to bridge the gap between MIME and UTI; - By subclasses this class, one can extend Qt's drag and drop - and clipboard handling to convert to and from unsupported, or proprietary, UTI formats. - - A subclass of QMacMime will automatically be registered, and active, upon instantiation. - - Qt has predefined support for the following UTIs: - \list - \li public.utf8-plain-text - converts to "text/plain" - \li public.utf16-plain-text - converts to "text/plain" - \li public.text - converts to "text/plain" - \li public.html - converts to "text/html" - \li public.url - converts to "text/uri-list" - \li public.file-url - converts to "text/uri-list" - \li public.tiff - converts to "application/x-qt-image" - \li public.vcard - converts to "text/plain" - \li com.apple.traditional-mac-plain-text - converts to "text/plain" - \li com.apple.pict - converts to "application/x-qt-image" - \endlist - - When working with MIME data, Qt will iterate through all instances of QMacMime to - find an instance that can convert to, or from, a specific MIME type. It will do this by calling - canConvert() on each instance, starting with (and choosing) the last created instance first. - The actual conversions will be done by using convertToMime() and convertFromMime(). - - \note The API uses the term "flavor" in some cases. This is for backwards - compatibility reasons, and should now be understood as UTIs. + \class QMacMime + \internal + \brief The QMacMime class converts between a MIME type and a + \l{https://developer.apple.com/documentation/uniformtypeidentifiers} + {Uniform Type Identifier (UTI)} format. + \since 4.2 + + \ingroup draganddrop + \inmodule QtGui + + Qt's drag and drop and clipboard facilities use the MIME + standard. On X11, this maps trivially to the Xdnd protocol. On + Mac, although some applications use MIME to describe clipboard + contents, it is more common to use Apple's UTI format. + + QMacMime's role is to bridge the gap between MIME and UTI; + By subclasses this class, one can extend Qt's drag and drop + and clipboard handling to convert to and from unsupported, or proprietary, UTI formats. + + A subclass of QMacMime will automatically be registered, and active, upon instantiation. + + Qt has predefined support for the following UTIs: + \list + \li public.utf8-plain-text - converts to "text/plain" + \li public.utf16-plain-text - converts to "text/plain" + \li public.text - converts to "text/plain" + \li public.html - converts to "text/html" + \li public.url - converts to "text/uri-list" + \li public.file-url - converts to "text/uri-list" + \li public.tiff - converts to "application/x-qt-image" + \li public.vcard - converts to "text/plain" + \li com.apple.traditional-mac-plain-text - converts to "text/plain" + \li com.apple.pict - converts to "application/x-qt-image" + \endlist + + When working with MIME data, Qt will iterate through all instances of QMacMime to + find an instance that can convert to, or from, a specific MIME type. It will do this by calling + canConvert() on each instance, starting with (and choosing) the last created instance first. + The actual conversions will be done by using convertToMime() and convertFromMime(). */ -/* - \enum QMacMime::QMacMimeType +/*! + \enum QMacMime::HandlerScope \internal */ -/* - Constructs a new conversion object of type \a scope, adding it to the - globally accessed list of available converters. +/*! + Constructs a new conversion object of type \a scope, adding it to the + globally accessed list of available converters. */ QMacMime::QMacMime(HandlerScope scope) : m_scope(scope) @@ -93,26 +90,26 @@ QMacMime::QMacMime(HandlerScope scope) QMacMimeRegistry::registerMimeConverter(this); } -/* - Constructs a new conversion object and adds it to the - globally accessed list of available converters. +/*! + Constructs a new conversion object and adds it to the + globally accessed list of available converters. */ QMacMime::QMacMime() : QMacMime(HandlerScope::All) { } -/* - Destroys a conversion object, removing it from the global - list of available converters. +/*! + Destroys a conversion object, removing it from the global + list of available converters. */ QMacMime::~QMacMime() { QMacMimeRegistry::unregisterMimeConverter(this); } -/* - Returns the item count for the given \a mimeData +/*! + Returns the item count for the given \a mimeData */ int QMacMime::count(const QMimeData *mimeData) const { @@ -120,18 +117,73 @@ int QMacMime::count(const QMimeData *mimeData) const return 1; } + +/* + \fn bool QMacMime::canConvert(const QString &mime, QString uti) + + Returns \c true if the converter can convert (both ways) between + \a mime and \a uti; otherwise returns \c false. + + All subclasses must reimplement this pure virtual function. +*/ + +/* + \fn QString QMacMime::mimeForUti(QString uti) + + Returns the MIME UTI used for Mac uti \a uti, or an empty string if + this converter does not support \a uti. + + All subclasses must reimplement this pure virtual function. +*/ + +/* + \fn QString QMacMime::utiForMime(const QString &mime) + + Returns the Mac UTI used for MIME type \a mime, or an empty string if + this converter does not support \a mime. + + All subclasses must reimplement this pure virtual function. +*/ + +/* + \fn QVariant QMacMime::convertToMime(const QString &mime, + const QList<QByteArray> &data, const QString &uti) + + Returns \a data converted from Mac UTI \a uti to MIME type \a mime. + + Note that Mac UTIs must all be self-terminating. The input \a data + may contain trailing data. + + All subclasses must reimplement this pure virtual function. +*/ + +/* + \fn QList<QByteArray> QMacMime::convertFromMime(const QString &mime, + const QVariant &data, const QString & uti) + + Returns \a data converted from MIME type \a mime to Mac UTI \a uti. + + Note that Mac UTIs must all be self-terminating. The return + value may contain trailing data. + + All subclasses must reimplement this pure virtual function. +*/ + + class QMacMimeAny : public QMacMime { public: QMacMimeAny() : QMacMime(HandlerScope::AllCompatible) {} - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeAny::flavorForMime(const QString &mime) const +QString QMacMimeAny::utiForMime(const QString &mime) const { // do not handle the mime type name in the drag pasteboard if (mime == "application/x-qt-mime-type-name"_L1) @@ -140,20 +192,21 @@ QString QMacMimeAny::flavorForMime(const QString &mime) const return ret.replace(u'/', "--"_L1); } -QString QMacMimeAny::mimeForFlavor(const QString &flav) const +QString QMacMimeAny::mimeForUti(const QString &uti) const { const QString any_prefix = "com.trolltech.anymime."_L1; - if (flav.size() > any_prefix.length() && flav.startsWith(any_prefix)) - return flav.mid(any_prefix.length()).replace("--"_L1, "/"_L1); + if (uti.size() > any_prefix.length() && uti.startsWith(any_prefix)) + return uti.mid(any_prefix.length()).replace("--"_L1, "/"_L1); return QString(); } -bool QMacMimeAny::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeAny::canConvert(const QString &mime, const QString &uti) const { - return mimeForFlavor(flav) == mime; + return mimeForUti(uti) == mime; } -QVariant QMacMimeAny::convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &) const +QVariant QMacMimeAny::convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &) const { if (data.count() > 1) qWarning("QMacMimeAny: Cannot handle multiple member data"); @@ -165,7 +218,8 @@ QVariant QMacMimeAny::convertToMime(const QString &mime, const QList<QByteArray> return ret; } -QList<QByteArray> QMacMimeAny::convertFromMime(const QString &mime, const QVariant &data, const QString &) const +QList<QByteArray> QMacMimeAny::convertFromMime(const QString &mime, const QVariant &data, + const QString &) const { QList<QByteArray> ret; if (mime == "text/plain"_L1) @@ -181,21 +235,21 @@ private: public: QMacMimeTypeName(): QMacMime(HandlerScope::AllCompatible) {} - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const override; }; -QString QMacMimeTypeName::flavorForMime(const QString &mime) const +QString QMacMimeTypeName::utiForMime(const QString &mime) const { if (mime == "application/x-qt-mime-type-name"_L1) return u"com.trolltech.qt.MimeTypeName"_s; return QString(); } -QString QMacMimeTypeName::mimeForFlavor(const QString &) const +QString QMacMimeTypeName::mimeForUti(const QString &) const { return QString(); } @@ -221,40 +275,42 @@ QList<QByteArray> QMacMimeTypeName::convertFromMime(const QString &, const QVari class QMacMimePlainTextFallback : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimePlainTextFallback::flavorForMime(const QString &mime) const +QString QMacMimePlainTextFallback::utiForMime(const QString &mime) const { if (mime == "text/plain"_L1) return "public.text"_L1; return QString(); } -QString QMacMimePlainTextFallback::mimeForFlavor(const QString &flav) const +QString QMacMimePlainTextFallback::mimeForUti(const QString &uti) const { - if (flav == "public.text"_L1) + if (uti == "public.text"_L1) return "text/plain"_L1; return QString(); } -bool QMacMimePlainTextFallback::canConvert(const QString &mime, const QString &flav) const +bool QMacMimePlainTextFallback::canConvert(const QString &mime, const QString &uti) const { - return mime == mimeForFlavor(flav); + return mime == mimeForUti(uti); } QVariant QMacMimePlainTextFallback::convertToMime(const QString &mimetype, - const QList<QByteArray> &data, const QString &flavor) const + const QList<QByteArray> &data, const QString &uti) const { if (data.count() > 1) qWarning("QMacMimePlainTextFallback: Cannot handle multiple member data"); - if (flavor == "public.text"_L1) { + if (uti == "public.text"_L1) { // Note that public.text is documented by Apple to have an undefined encoding. From // testing it seems that utf8 is normally used, at least by Safari on iOS. const QByteArray &firstData = data.first(); @@ -269,11 +325,11 @@ QMacMimePlainTextFallback::convertToMime(const QString &mimetype, QList<QByteArray> QMacMimePlainTextFallback::convertFromMime(const QString &, const QVariant &data, - const QString &flavor) const + const QString &uti) const { QList<QByteArray> ret; QString string = data.toString(); - if (flavor == "public.text"_L1) + if (uti == "public.text"_L1) ret.append(string.toUtf8()); return ret; } @@ -281,14 +337,16 @@ QMacMimePlainTextFallback::convertFromMime(const QString &, const QVariant &data class QMacMimeUnicodeText : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeUnicodeText::flavorForMime(const QString &mime) const +QString QMacMimeUnicodeText::utiForMime(const QString &mime) const { if (mime == "text/plain"_L1) return "public.utf16-plain-text"_L1; @@ -306,31 +364,31 @@ QString QMacMimeUnicodeText::flavorForMime(const QString &mime) const return QString(); } -QString QMacMimeUnicodeText::mimeForFlavor(const QString &flav) const +QString QMacMimeUnicodeText::mimeForUti(const QString &uti) const { - if (flav == "public.utf16-plain-text"_L1 || flav == "public.utf8-plain-text"_L1) + if (uti == "public.utf16-plain-text"_L1 || uti == "public.utf8-plain-text"_L1) return "text/plain"_L1; return QString(); } -bool QMacMimeUnicodeText::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeUnicodeText::canConvert(const QString &mime, const QString &uti) const { return (mime == "text/plain"_L1 - && (flav == "public.utf8-plain-text"_L1 || (flav == "public.utf16-plain-text"_L1))); + && (uti == "public.utf8-plain-text"_L1 || (uti == "public.utf16-plain-text"_L1))); } QVariant QMacMimeUnicodeText::convertToMime(const QString &mimetype, - const QList<QByteArray> &data, const QString &flavor) const + const QList<QByteArray> &data, const QString &uti) const { if (data.count() > 1) qWarning("QMacMimeUnicodeText: Cannot handle multiple member data"); const QByteArray &firstData = data.first(); // I can only handle two types (system and unicode) so deal with them that way QVariant ret; - if (flavor == "public.utf8-plain-text"_L1) { + if (uti == "public.utf8-plain-text"_L1) { ret = QString::fromUtf8(firstData); - } else if (flavor == "public.utf16-plain-text"_L1) { + } else if (uti == "public.utf16-plain-text"_L1) { QString str = QStringDecoder(QStringDecoder::Utf16)(firstData); ret = str; } else { @@ -340,13 +398,14 @@ QMacMimeUnicodeText::convertToMime(const QString &mimetype, } QList<QByteArray> -QMacMimeUnicodeText::convertFromMime(const QString &, const QVariant &data, const QString &flavor) const +QMacMimeUnicodeText::convertFromMime(const QString &, const QVariant &data, + const QString &uti) const { QList<QByteArray> ret; QString string = data.toString(); - if (flavor == "public.utf8-plain-text"_L1) + if (uti == "public.utf8-plain-text"_L1) ret.append(string.toUtf8()); - else if (flavor == "public.utf16-plain-text"_L1) { + else if (uti == "public.utf16-plain-text"_L1) { QStringEncoder::Flags f; #if defined(Q_OS_MACOS) // Some applications such as Microsoft Excel, don't deal well with @@ -369,37 +428,39 @@ QMacMimeUnicodeText::convertFromMime(const QString &, const QVariant &data, cons class QMacMimeHTMLText : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeHTMLText::flavorForMime(const QString &mime) const +QString QMacMimeHTMLText::utiForMime(const QString &mime) const { if (mime == "text/html"_L1) return "public.html"_L1; return QString(); } -QString QMacMimeHTMLText::mimeForFlavor(const QString &flav) const +QString QMacMimeHTMLText::mimeForUti(const QString &uti) const { - if (flav == "public.html"_L1) + if (uti == "public.html"_L1) return "text/html"_L1; return QString(); } -bool QMacMimeHTMLText::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeHTMLText::canConvert(const QString &mime, const QString &uti) const { - return flavorForMime(mime) == flav; + return utiForMime(mime) == uti; } QVariant QMacMimeHTMLText::convertToMime(const QString &mimeType, - const QList<QByteArray> &data, const QString &flavor) const + const QList<QByteArray> &data, const QString &uti) const { - if (!canConvert(mimeType, flavor)) + if (!canConvert(mimeType, uti)) return QVariant(); if (data.count() > 1) qWarning("QMacMimeHTMLText: Cannot handle multiple member data"); @@ -408,10 +469,10 @@ QMacMimeHTMLText::convertToMime(const QString &mimeType, QList<QByteArray> QMacMimeHTMLText::convertFromMime(const QString &mime, - const QVariant &data, const QString &flavor) const + const QVariant &data, const QString &uti) const { QList<QByteArray> ret; - if (!canConvert(mime, flavor)) + if (!canConvert(mime, uti)) return ret; ret.append(data.toByteArray()); return ret; @@ -420,37 +481,39 @@ QMacMimeHTMLText::convertFromMime(const QString &mime, class QMacMimeRtfText : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeRtfText::flavorForMime(const QString &mime) const +QString QMacMimeRtfText::utiForMime(const QString &mime) const { if (mime == "text/html"_L1) return "public.rtf"_L1; return QString(); } -QString QMacMimeRtfText::mimeForFlavor(const QString &flav) const +QString QMacMimeRtfText::mimeForUti(const QString &uti) const { - if (flav == "public.rtf"_L1) + if (uti == "public.rtf"_L1) return "text/html"_L1; return QString(); } -bool QMacMimeRtfText::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeRtfText::canConvert(const QString &mime, const QString &uti) const { - return mime == mimeForFlavor(flav); + return mime == mimeForUti(uti); } QVariant QMacMimeRtfText::convertToMime(const QString &mimeType, - const QList<QByteArray> &data, const QString &flavor) const + const QList<QByteArray> &data, const QString &uti) const { - if (!canConvert(mimeType, flavor)) + if (!canConvert(mimeType, uti)) return QVariant(); if (data.count() > 1) qWarning("QMacMimeHTMLText: Cannot handle multiple member data"); @@ -470,10 +533,10 @@ QMacMimeRtfText::convertToMime(const QString &mimeType, QList<QByteArray> QMacMimeRtfText::convertFromMime(const QString &mime, - const QVariant &data, const QString &flavor) const + const QVariant &data, const QString &uti) const { QList<QByteArray> ret; - if (!canConvert(mime, flavor)) + if (!canConvert(mime, uti)) return ret; NSAttributedString *string = [[NSAttributedString alloc] initWithData:data.toByteArray().toNSData() @@ -492,38 +555,40 @@ QMacMimeRtfText::convertFromMime(const QString &mime, class QMacMimeFileUri : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; int count(const QMimeData *mimeData) const override; }; -QString QMacMimeFileUri::flavorForMime(const QString &mime) const +QString QMacMimeFileUri::utiForMime(const QString &mime) const { if (mime == "text/uri-list"_L1) return "public.file-url"_L1; return QString(); } -QString QMacMimeFileUri::mimeForFlavor(const QString &flav) const +QString QMacMimeFileUri::mimeForUti(const QString &uti) const { - if (flav == "public.file-url"_L1) + if (uti == "public.file-url"_L1) return "text/uri-list"_L1; return QString(); } -bool QMacMimeFileUri::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeFileUri::canConvert(const QString &mime, const QString &uti) const { - return mime == "text/uri-list"_L1 && flav == "public.file-url"_L1; + return mime == "text/uri-list"_L1 && uti == "public.file-url"_L1; } QVariant QMacMimeFileUri::convertToMime(const QString &mime, - const QList<QByteArray> &data, const QString &flav) const + const QList<QByteArray> &data, const QString &uti) const { - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return QVariant(); QList<QVariant> ret; for (int i = 0; i < data.size(); ++i) { @@ -550,10 +615,10 @@ QMacMimeFileUri::convertToMime(const QString &mime, QList<QByteArray> QMacMimeFileUri::convertFromMime(const QString &mime, - const QVariant &data, const QString &flav) const + const QVariant &data, const QString &uti) const { QList<QByteArray> ret; - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return ret; QList<QVariant> urls = data.toList(); for (int i = 0; i < urls.size(); ++i) { @@ -579,37 +644,39 @@ int QMacMimeFileUri::count(const QMimeData *mimeData) const class QMacMimeUrl : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeUrl::flavorForMime(const QString &mime) const +QString QMacMimeUrl::utiForMime(const QString &mime) const { if (mime.startsWith("text/uri-list"_L1)) return "public.url"_L1; return QString(); } -QString QMacMimeUrl::mimeForFlavor(const QString &flav) const +QString QMacMimeUrl::mimeForUti(const QString &uti) const { - if (flav == "public.url"_L1) + if (uti == "public.url"_L1) return "text/uri-list"_L1; return QString(); } -bool QMacMimeUrl::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeUrl::canConvert(const QString &mime, const QString &uti) const { - return flav == "public.url"_L1 + return uti == "public.url"_L1 && mime == "text/uri-list"_L1; } QVariant QMacMimeUrl::convertToMime(const QString &mime, - const QList<QByteArray> &data, const QString &flav) const + const QList<QByteArray> &data, const QString &uti) const { - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return QVariant(); QList<QVariant> ret; @@ -624,10 +691,10 @@ QVariant QMacMimeUrl::convertToMime(const QString &mime, } QList<QByteArray> QMacMimeUrl::convertFromMime(const QString &mime, - const QVariant &data, const QString &flav) const + const QVariant &data, const QString &uti) const { QList<QByteArray> ret; - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return ret; QList<QVariant> urls = data.toList(); @@ -648,34 +715,36 @@ QList<QByteArray> QMacMimeUrl::convertFromMime(const QString &mime, class QMacMimeVCard : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -bool QMacMimeVCard::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeVCard::canConvert(const QString &mime, const QString &uti) const { - return mimeForFlavor(flav) == mime; + return mimeForUti(uti) == mime; } -QString QMacMimeVCard::flavorForMime(const QString &mime) const +QString QMacMimeVCard::utiForMime(const QString &mime) const { if (mime.startsWith("text/vcard"_L1)) return "public.vcard"_L1; return QString(); } -QString QMacMimeVCard::mimeForFlavor(const QString &flav) const +QString QMacMimeVCard::mimeForUti(const QString &uti) const { - if (flav == "public.vcard"_L1) + if (uti == "public.vcard"_L1) return "text/vcard"_L1; return QString(); } QVariant QMacMimeVCard::convertToMime(const QString &mime, - const QList<QByteArray> &data, const QString &) const + const QList<QByteArray> &data, const QString &) const { QByteArray cards; if (mime == "text/vcard"_L1) { @@ -686,7 +755,7 @@ QVariant QMacMimeVCard::convertToMime(const QString &mime, } QList<QByteArray> QMacMimeVCard::convertFromMime(const QString &mime, - const QVariant &data, const QString &) const + const QVariant &data, const QString &) const { QList<QByteArray> ret; if (mime == "text/vcard"_L1) @@ -700,39 +769,41 @@ extern CGImageRef qt_mac_toCGImage(const QImage &qImage); class QMacMimeTiff : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; - QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const override; - QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; + QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, + const QString &uti) const override; + QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, + const QString &uti) const override; }; -QString QMacMimeTiff::flavorForMime(const QString &mime) const +QString QMacMimeTiff::utiForMime(const QString &mime) const { if (mime.startsWith("application/x-qt-image"_L1)) return "public.tiff"_L1; return QString(); } -QString QMacMimeTiff::mimeForFlavor(const QString &flav) const +QString QMacMimeTiff::mimeForUti(const QString &uti) const { - if (flav == "public.tiff"_L1) + if (uti == "public.tiff"_L1) return "application/x-qt-image"_L1; return QString(); } -bool QMacMimeTiff::canConvert(const QString &mime, const QString &flav) const +bool QMacMimeTiff::canConvert(const QString &mime, const QString &uti) const { - return flav == "public.tiff"_L1 && mime == "application/x-qt-image"_L1; + return uti == "public.tiff"_L1 && mime == "application/x-qt-image"_L1; } QVariant QMacMimeTiff::convertToMime(const QString &mime, - const QList<QByteArray> &data, const QString &flav) const + const QList<QByteArray> &data, const QString &uti) const { if (data.count() > 1) qWarning("QMacMimeTiff: Cannot handle multiple member data"); - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return QVariant(); QCFType<CFDataRef> tiffData = data.first().toRawCFData(); @@ -745,13 +816,14 @@ QVariant QMacMimeTiff::convertToMime(const QString &mime, } QList<QByteArray> QMacMimeTiff::convertFromMime(const QString &mime, - const QVariant &variant, const QString &flav) const + const QVariant &variant, const QString &uti) const { - if (!canConvert(mime, flav)) + if (!canConvert(mime, uti)) return QList<QByteArray>(); QCFType<CFMutableDataRef> data = CFDataCreateMutable(0, 0); - QCFType<CGImageDestinationRef> imageDestination = CGImageDestinationCreateWithData(data, kUTTypeTIFF, 1, 0); + QCFType<CGImageDestinationRef> imageDestination = CGImageDestinationCreateWithData(data, + kUTTypeTIFF, 1, 0); if (!imageDestination) return QList<QByteArray>(); @@ -762,7 +834,8 @@ QList<QByteArray> QMacMimeTiff::convertFromMime(const QString &mime, static_cast<NSString *>(kCGImagePropertyPixelHeight): @(img.height()) }; - CGImageDestinationAddImage(imageDestination, qt_mac_toCGImage(img), static_cast<CFDictionaryRef>(props)); + CGImageDestinationAddImage(imageDestination, qt_mac_toCGImage(img), + static_cast<CFDictionaryRef>(props)); CGImageDestinationFinalize(imageDestination); return QList<QByteArray>() << QByteArray::fromCFData(data); @@ -790,55 +863,4 @@ void registerBuiltInTypes() } -/* - \fn bool QMacMime::canConvert(const QString &mime, QString flav) - - Returns \c true if the converter can convert (both ways) between - \a mime and \a flav; otherwise returns \c false. - - All subclasses must reimplement this pure virtual function. -*/ - -/* - \fn QString QMacMime::mimeForFlavor(QString flav) - - Returns the MIME UTI used for Mac flavor \a flav, or 0 if this - converter does not support \a flav. - - All subclasses must reimplement this pure virtual function. -*/ - -/* - \fn QString QMacMime::flavorForMime(const QString &mime) - - Returns the Mac UTI used for MIME type \a mime, or 0 if this - converter does not support \a mime. - - All subclasses must reimplement this pure virtual function. -*/ - -/* - \fn QVariant QMacMime::convertToMime(const QString &mime, QList<QByteArray> data, QString flav) - - Returns \a data converted from Mac UTI \a flav to MIME type \a - mime. - - Note that Mac flavors must all be self-terminating. The input \a - data may contain trailing data. - - All subclasses must reimplement this pure virtual function. -*/ - -/* - \fn QList<QByteArray> QMacMime::convertFromMime(const QString &mime, const QVariant &data, const QString & flav) - - Returns \a data converted from MIME type \a mime - to Mac UTI \a flav. - - Note that Mac flavors must all be self-terminating. The return - value may contain trailing data. - - All subclasses must reimplement this pure virtual function. -*/ - QT_END_NAMESPACE diff --git a/src/gui/platform/darwin/qmacmime_p.h b/src/gui/platform/darwin/qmacmime_p.h index 56ca0acc4f..660d251ad5 100644 --- a/src/gui/platform/darwin/qmacmime_p.h +++ b/src/gui/platform/darwin/qmacmime_p.h @@ -41,14 +41,14 @@ public: HandlerScope scope() const { return m_scope; } - virtual bool canConvert(const QString &mime, const QString &flav) const = 0; + virtual bool canConvert(const QString &mime, const QString &uti) const = 0; // for converting from Qt - virtual QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &flav) const = 0; - virtual QString flavorForMime(const QString &mime) const = 0; + virtual QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, const QString &uti) const = 0; + virtual QString utiForMime(const QString &mime) const = 0; // for converting to Qt - virtual QString mimeForFlavor(const QString &flav) const = 0; - virtual QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &flav) const = 0; + virtual QString mimeForUti(const QString &uti) const = 0; + virtual QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, const QString &uti) const = 0; virtual int count(const QMimeData *mimeData) const; private: diff --git a/src/gui/platform/darwin/qmacmimeregistry.mm b/src/gui/platform/darwin/qmacmimeregistry.mm index eb953bbf08..c08172abcc 100644 --- a/src/gui/platform/darwin/qmacmimeregistry.mm +++ b/src/gui/platform/darwin/qmacmimeregistry.mm @@ -78,19 +78,19 @@ void destroyMimeTypes() } /* - Returns a MIME type of for scope \a scope for \a flav, or \nullptr if none exists. + Returns a MIME type of for scope \a scope for \a uti, or \nullptr if none exists. */ -QString flavorToMime(QMacMime::HandlerScope scope, const QString &flav) +QString flavorToMime(QMacMime::HandlerScope scope, const QString &uti) { MimeList *mimes = globalMimeList(); for (MimeList::const_iterator it = mimes->constBegin(); it != mimes->constEnd(); ++it) { const bool relevantScope = uchar((*it)->scope()) & uchar(scope); #ifdef DEBUG_MIME_MAPS - qDebug("QMacMimeRegistry::flavorToMime: attempting (%d) for flavor %s [%s]", - relevantScope, qPrintable(flav), qPrintable((*it)->mimeForFlavor(flav))); + qDebug("QMacMimeRegistry::flavorToMime: attempting (%d) for uti %s [%s]", + relevantScope, qPrintable(uti), qPrintable((*it)->mimeForUti(uti))); #endif if (relevantScope) { - QString mimeType = (*it)->mimeForFlavor(flav); + QString mimeType = (*it)->mimeForUti(uti); if (!mimeType.isNull()) return mimeType; } diff --git a/src/plugins/platforms/cocoa/qcocoamimetypes.mm b/src/plugins/platforms/cocoa/qcocoamimetypes.mm index eb034b31f9..7a08cdb47f 100644 --- a/src/plugins/platforms/cocoa/qcocoamimetypes.mm +++ b/src/plugins/platforms/cocoa/qcocoamimetypes.mm @@ -14,45 +14,45 @@ using namespace Qt::StringLiterals; class QMacMimeTraditionalMacPlainText : public QMacMime { public: - QString flavorForMime(const QString &mime) const override; - QString mimeForFlavor(const QString &flav) const override; - bool canConvert(const QString &mime, const QString &flav) const override; + QString utiForMime(const QString &mime) const override; + QString mimeForUti(const QString &uti) const override; + bool canConvert(const QString &mime, const QString &uti) const override; QVariant convertToMime(const QString &mime, const QList<QByteArray> &data, - const QString &flav) const override; + const QString &uti) const override; QList<QByteArray> convertFromMime(const QString &mime, const QVariant &data, - const QString &flav) const override; + const QString &uti) const override; }; -QString QMacMimeTraditionalMacPlainText::flavorForMime(const QString &mime) const +QString QMacMimeTraditionalMacPlainText::utiForMime(const QString &mime) const { if (mime == "text/plain"_L1) return "com.apple.traditional-mac-plain-text"_L1; return QString(); } -QString QMacMimeTraditionalMacPlainText::mimeForFlavor(const QString &flav) const +QString QMacMimeTraditionalMacPlainText::mimeForUti(const QString &uti) const { - if (flav == "com.apple.traditional-mac-plain-text"_L1) + if (uti == "com.apple.traditional-mac-plain-text"_L1) return "text/plain"_L1; return QString(); } bool QMacMimeTraditionalMacPlainText::canConvert(const QString &mime, - const QString &flav) const + const QString &uti) const { - return flavorForMime(mime) == flav; + return utiForMime(mime) == uti; } QVariant QMacMimeTraditionalMacPlainText::convertToMime(const QString &mimetype, const QList<QByteArray> &data, - const QString &flavor) const + const QString &uti) const { if (data.count() > 1) qWarning("QMacMimeTraditionalMacPlainText: Cannot handle multiple member data"); const QByteArray &firstData = data.first(); QVariant ret; - if (flavor == "com.apple.traditional-mac-plain-text"_L1) { + if (uti == "com.apple.traditional-mac-plain-text"_L1) { return QString(QCFString(CFStringCreateWithBytes(kCFAllocatorDefault, reinterpret_cast<const UInt8 *>(firstData.constData()), firstData.size(), CFStringGetSystemEncoding(), false))); @@ -65,11 +65,11 @@ QMacMimeTraditionalMacPlainText::convertToMime(const QString &mimetype, QList<QByteArray> QMacMimeTraditionalMacPlainText::convertFromMime(const QString &, const QVariant &data, - const QString &flavor) const + const QString &uti) const { QList<QByteArray> ret; QString string = data.toString(); - if (flavor == "com.apple.traditional-mac-plain-text"_L1) + if (uti == "com.apple.traditional-mac-plain-text"_L1) ret.append(string.toLatin1()); return ret; } diff --git a/src/plugins/platforms/cocoa/qmacclipboard.mm b/src/plugins/platforms/cocoa/qmacclipboard.mm index a58a536108..4f1482f5d2 100644 --- a/src/plugins/platforms/cocoa/qmacclipboard.mm +++ b/src/plugins/platforms/cocoa/qmacclipboard.mm @@ -125,7 +125,7 @@ QMacPasteboard::pasteBoard() const return paste; } -OSStatus QMacPasteboard::promiseKeeper(PasteboardRef paste, PasteboardItemID id, CFStringRef flavor, void *_qpaste) +OSStatus QMacPasteboard::promiseKeeper(PasteboardRef paste, PasteboardItemID id, CFStringRef uti, void *_qpaste) { QMacPasteboard *qpaste = (QMacPasteboard*)_qpaste; const long promise_id = (long)id; @@ -133,7 +133,7 @@ OSStatus QMacPasteboard::promiseKeeper(PasteboardRef paste, PasteboardItemID id, // Find the kept promise QList<QMacMime*> availableConverters = QMacMimeRegistry::all(QMacMime::HandlerScope::All); - const QString flavorAsQString = QString::fromCFString(flavor); + const QString flavorAsQString = QString::fromCFString(uti); QMacPasteboard::Promise promise; for (int i = 0; i < qpaste->promises.size(); i++){ QMacPasteboard::Promise tmp = qpaste->promises[i]; @@ -158,13 +158,13 @@ OSStatus QMacPasteboard::promiseKeeper(PasteboardRef paste, PasteboardItemID id, // This helps in making the application/x-qt-mime-type-name hidden from normal use. QByteArray ba; QCFType<CFDataRef> data = CFDataCreate(nullptr, (UInt8*)ba.constData(), ba.size()); - PasteboardPutItemFlavor(paste, id, flavor, data, kPasteboardFlavorNoFlags); + PasteboardPutItemFlavor(paste, id, uti, data, kPasteboardFlavorNoFlags); return noErr; } if (!promise.itemId) { // There was no promise that could deliver data for the - // given id and flavor. This should not happen. + // given id and uti. This should not happen. qDebug("Pasteboard: %d: Request for %ld, %s, but no promise found!", __LINE__, promise_id, qPrintable(flavorAsQString)); return cantGetFlavorErr; } @@ -193,7 +193,7 @@ OSStatus QMacPasteboard::promiseKeeper(PasteboardRef paste, PasteboardItemID id, return cantGetFlavorErr; const QByteArray &ba = md[promise.offset]; QCFType<CFDataRef> data = CFDataCreate(nullptr, (UInt8*)ba.constData(), ba.size()); - PasteboardPutItemFlavor(paste, id, flavor, data, kPasteboardFlavorNoFlags); + PasteboardPutItemFlavor(paste, id, uti, data, kPasteboardFlavorNoFlags); return noErr; } @@ -223,8 +223,8 @@ QMacPasteboard::hasOSType(int c_flavor) const const int type_count = CFArrayGetCount(types); for (int i = 0; i < type_count; ++i) { - CFStringRef flavor = (CFStringRef)CFArrayGetValueAtIndex(types, i); - CFStringRef preferredTag = UTTypeCopyPreferredTagWithClass(flavor, kUTTagClassOSType); + CFStringRef uti = (CFStringRef)CFArrayGetValueAtIndex(types, i); + CFStringRef preferredTag = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassOSType); const int os_flavor = UTGetOSTypeFromString(preferredTag); if (preferredTag) CFRelease(preferredTag); @@ -320,10 +320,10 @@ QMacPasteboard::setMimeData(QMimeData *mime_src, DataRequestType dataRequestType // Hack: The Rtf handler converts incoming Rtf to Html. We do // not want to convert outgoing Html to Rtf but instead keep // posting it as Html. Skip the Rtf handler here. - if (c->flavorForMime("text/html"_L1) == "public.rtf"_L1) + if (c->utiForMime("text/html"_L1) == "public.rtf"_L1) continue; - QString flavor(c->flavorForMime(mimeType)); - if (!flavor.isEmpty()) { + QString uti(c->utiForMime(mimeType)); + if (!uti.isEmpty()) { QMacMimeData *mimeData = static_cast<QMacMimeData*>(mime_src); int numItems = c->count(mime_src); @@ -335,9 +335,9 @@ QMacPasteboard::setMimeData(QMimeData *mime_src, DataRequestType dataRequestType QMacPasteboard::Promise promise(itemID, c, mimeType, mimeData, item, dataRequestType); promises.append(promise); - PasteboardPutItemFlavor(paste, reinterpret_cast<PasteboardItemID>(itemID), QCFString(flavor), 0, kPasteboardFlavorNoFlags); + PasteboardPutItemFlavor(paste, reinterpret_cast<PasteboardItemID>(itemID), QCFString(uti), 0, kPasteboardFlavorNoFlags); qCDebug(lcQpaClipboard, " - adding %ld %s [%s] [%d]", - itemID, qPrintable(mimeType), qPrintable(flavor), item); + itemID, qPrintable(mimeType), qPrintable(uti), item); } } } @@ -371,11 +371,11 @@ QMacPasteboard::formats() const const int type_count = CFArrayGetCount(types); for (int i = 0; i < type_count; ++i) { - const QString flavor = QString::fromCFString((CFStringRef)CFArrayGetValueAtIndex(types, i)); - qCDebug(lcQpaClipboard, " -%s", qPrintable(QString(flavor))); - const QString mimeType = QMacMimeRegistry::flavorToMime(scope, flavor); + const QString uti = QString::fromCFString((CFStringRef)CFArrayGetValueAtIndex(types, i)); + qCDebug(lcQpaClipboard, " -%s", qPrintable(QString(uti))); + const QString mimeType = QMacMimeRegistry::flavorToMime(scope, uti); if (!mimeType.isEmpty() && !ret.contains(mimeType)) { - qCDebug(lcQpaClipboard, " -<%lld> %s [%s]", ret.size(), qPrintable(mimeType), qPrintable(QString(flavor))); + qCDebug(lcQpaClipboard, " -<%lld> %s [%s]", ret.size(), qPrintable(mimeType), qPrintable(QString(uti))); ret << mimeType; } } @@ -408,9 +408,9 @@ QMacPasteboard::hasFormat(const QString &format) const const int type_count = CFArrayGetCount(types); for (int i = 0; i < type_count; ++i) { - const QString flavor = QString::fromCFString((CFStringRef)CFArrayGetValueAtIndex(types, i)); - qCDebug(lcQpaClipboard, " -%s [0x%x]", qPrintable(flavor), uchar(scope)); - QString mimeType = QMacMimeRegistry::flavorToMime(scope, flavor); + const QString uti = QString::fromCFString((CFStringRef)CFArrayGetValueAtIndex(types, i)); + qCDebug(lcQpaClipboard, " -%s [0x%x]", qPrintable(uti), uchar(scope)); + QString mimeType = QMacMimeRegistry::flavorToMime(scope, uti); if (!mimeType.isEmpty()) qCDebug(lcQpaClipboard, " - %s", qPrintable(mimeType)); if (mimeType == format) @@ -435,7 +435,7 @@ QMacPasteboard::retrieveData(const QString &format, QMetaType) const qCDebug(lcQpaClipboard, "Pasteboard: retrieveData [%s]", qPrintable(format)); const QList<QMacMime *> availableConverters = QMacMimeRegistry::all(scope); for (const auto *c : availableConverters) { - QString c_flavor = c->flavorForMime(format); + QString c_flavor = c->utiForMime(format); if (!c_flavor.isEmpty()) { // Converting via PasteboardCopyItemFlavorData below will for some UITs result // in newlines mapping to '\r' instead of '\n'. To work around this we shortcut @@ -461,10 +461,10 @@ QMacPasteboard::retrieveData(const QString &format, QMetaType) const const int type_count = CFArrayGetCount(types); for (int i = 0; i < type_count; ++i) { - CFStringRef flavor = static_cast<CFStringRef>(CFArrayGetValueAtIndex(types, i)); - if (c_flavor == QString::fromCFString(flavor)) { + CFStringRef uti = static_cast<CFStringRef>(CFArrayGetValueAtIndex(types, i)); + if (c_flavor == QString::fromCFString(uti)) { QCFType<CFDataRef> macBuffer; - if (PasteboardCopyItemFlavorData(paste, id, flavor, &macBuffer) == noErr) { + if (PasteboardCopyItemFlavorData(paste, id, uti, &macBuffer) == noErr) { QByteArray buffer((const char *)CFDataGetBytePtr(macBuffer), CFDataGetLength(macBuffer)); if (!buffer.isEmpty()) { qCDebug(lcQpaClipboard, " - %s [%s]", qPrintable(format), qPrintable(c_flavor)); @@ -474,7 +474,7 @@ QMacPasteboard::retrieveData(const QString &format, QMetaType) const } } } else { - qCDebug(lcQpaClipboard, " - NoMatch %s [%s]", qPrintable(c_flavor), qPrintable(QString::fromCFString(flavor))); + qCDebug(lcQpaClipboard, " - NoMatch %s [%s]", qPrintable(c_flavor), qPrintable(QString::fromCFString(uti))); } } } diff --git a/src/plugins/platforms/ios/qiosclipboard.mm b/src/plugins/platforms/ios/qiosclipboard.mm index 32a5f4e99a..f9ae6c805b 100644 --- a/src/plugins/platforms/ios/qiosclipboard.mm +++ b/src/plugins/platforms/ios/qiosclipboard.mm @@ -131,7 +131,7 @@ QVariant QIOSMimeData::retrieveData(const QString &mimeType, QMetaType) const NSArray<NSString *> *pasteboardTypes = [pb pasteboardTypes]; foreach (QMacMime *converter, QMacMimeRegistry::all(QMacMime::HandlerScope::All)) { - if (!converter->canConvert(mimeType, converter->flavorForMime(mimeType))) + if (!converter->canConvert(mimeType, converter->utiForMime(mimeType))) continue; for (NSUInteger i = 0; i < [pasteboardTypes count]; ++i) { @@ -185,7 +185,7 @@ void QIOSClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode) foreach (const QString &mimeType, mimeData->formats()) { foreach (QMacMime *converter, QMacMimeRegistry::all(QMacMime::HandlerScope::All)) { - const QString uti = converter->flavorForMime(mimeType); + const QString uti = converter->utiForMime(mimeType); if (uti.isEmpty() || !converter->canConvert(mimeType, uti)) continue; |