Commit d7159b1aa1c24cc320a3ba013c9d0f3cf97b6684

Mac: add support for public.vcard UTI (DnD)

Added a QMacPasteboard converter for data dragged from the
address book on Mac. It is an easy piece of code, and will make it
easier for Mac people to work with standard Mac apps.
src/gui/kernel/qmime_mac.cpp
(57 / 0)
  
154154 \i public.url - converts to "text/uri-list"
155155 \i public.file-url - converts to "text/uri-list"
156156 \i public.tiff - converts to "application/x-qt-image"
157 \i public.vcard - converts to "text/plain"
157158 \i com.apple.traditional-mac-plain-text - converts to "text/plain"
158159 \i com.apple.pict - converts to "application/x-qt-image"
159160 \endlist
910910 return ret;
911911}
912912
913class QMacPasteboardMimeVCard : public QMacPasteboardMime
914{
915public:
916 QMacPasteboardMimeVCard() : QMacPasteboardMime(MIME_ALL){ }
917 QString convertorName();
918
919 QString flavorFor(const QString &mime);
920 QString mimeFor(QString flav);
921 bool canConvert(const QString &mime, QString flav);
922 QVariant convertToMime(const QString &mime, QList<QByteArray> data, QString flav);
923 QList<QByteArray> convertFromMime(const QString &mime, QVariant data, QString flav);
924};
925
926QString QMacPasteboardMimeVCard::convertorName()
927{
928 return QString("VCard");
929}
930
931bool QMacPasteboardMimeVCard::canConvert(const QString &mime, QString flav)
932{
933 return mimeFor(flav) == mime;
934}
935
936QString QMacPasteboardMimeVCard::flavorFor(const QString &mime)
937{
938 if(mime.startsWith(QLatin1String("text/plain")))
939 return QLatin1String("public.vcard");
940 return QString();
941}
942
943QString QMacPasteboardMimeVCard::mimeFor(QString flav)
944{
945 if (flav == QLatin1String("public.vcard"))
946 return QLatin1String("text/plain");
947 return QString();
948}
949
950QVariant QMacPasteboardMimeVCard::convertToMime(const QString &mime, QList<QByteArray> data, QString)
951{
952 QByteArray cards;
953 if (mime == QLatin1String("text/plain")) {
954 for (int i=0; i<data.size(); ++i)
955 cards += data[i];
956 }
957 return QVariant(cards);
958}
959
960QList<QByteArray> QMacPasteboardMimeVCard::convertFromMime(const QString &mime, QVariant data, QString)
961{
962 QList<QByteArray> ret;
963 if (mime == QLatin1String("text/plain"))
964 ret.append(data.toString().toUtf8());
965 return ret;
966}
967
913968#ifdef QT3_SUPPORT
914969class QMacPasteboardMimeQt3Any : public QMacPasteboardMime {
915970private:
11721172 new QMacPasteboardMimeFileUri;
11731173 new QMacPasteboardMimeUrl;
11741174 new QMacPasteboardMimeTypeName;
1175 new QMacPasteboardMimeVCard;
11751176 //make sure our "non-standard" types are always last! --Sam
11761177 new QMacPasteboardMimeAny;
11771178#ifdef QT3_SUPPORT

Comments

Add a new comment:

Login or create an account to post a comment

Add your comment