src/gui/kernel/qmime_mac.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
   152     \i public.utf16-plain-text - converts to "text/plain"
   152     \i public.utf16-plain-text - converts to "text/plain"
   153     \i public.html - converts to "text/html"
   153     \i public.html - converts to "text/html"
   154     \i public.url - converts to "text/uri-list"
   154     \i public.url - converts to "text/uri-list"
   155     \i public.file-url - converts to "text/uri-list"
   155     \i public.file-url - converts to "text/uri-list"
   156     \i public.tiff - converts to "application/x-qt-image"
   156     \i public.tiff - converts to "application/x-qt-image"
       
   157     \i public.vcard - converts to "text/plain"
   157     \i com.apple.traditional-mac-plain-text - converts to "text/plain"
   158     \i com.apple.traditional-mac-plain-text - converts to "text/plain"
   158     \i com.apple.pict - converts to "application/x-qt-image"
   159     \i com.apple.pict - converts to "application/x-qt-image"
   159   \endlist
   160   \endlist
   160 
   161 
   161   When working with MIME data, Qt will interate through all instances of QMacPasteboardMime to
   162   When working with MIME data, Qt will interate through all instances of QMacPasteboardMime to
   907         ret.append(url.toEncoded());
   908         ret.append(url.toEncoded());
   908     }
   909     }
   909     return ret;
   910     return ret;
   910 }
   911 }
   911 
   912 
       
   913 class QMacPasteboardMimeVCard : public QMacPasteboardMime
       
   914 {
       
   915 public:
       
   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 
       
   926 QString QMacPasteboardMimeVCard::convertorName()
       
   927 {
       
   928     return QString("VCard");
       
   929 }
       
   930 
       
   931 bool QMacPasteboardMimeVCard::canConvert(const QString &mime, QString flav)
       
   932 {
       
   933     return mimeFor(flav) == mime;
       
   934 }
       
   935 
       
   936 QString QMacPasteboardMimeVCard::flavorFor(const QString &mime)
       
   937 {
       
   938     if(mime.startsWith(QLatin1String("text/plain")))
       
   939         return QLatin1String("public.vcard");
       
   940     return QString();
       
   941 }
       
   942 
       
   943 QString QMacPasteboardMimeVCard::mimeFor(QString flav)
       
   944 {
       
   945     if (flav == QLatin1String("public.vcard"))
       
   946         return QLatin1String("text/plain");
       
   947     return QString();
       
   948 }
       
   949 
       
   950 QVariant 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 
       
   960 QList<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 
   912 #ifdef QT3_SUPPORT
   968 #ifdef QT3_SUPPORT
   913 class QMacPasteboardMimeQt3Any : public QMacPasteboardMime {
   969 class QMacPasteboardMimeQt3Any : public QMacPasteboardMime {
   914 private:
   970 private:
   915     int current_max;
   971     int current_max;
   916     QFile library_file;
   972     QFile library_file;
  1114         new QMacPasteboardMimePlainText;
  1170         new QMacPasteboardMimePlainText;
  1115         new QMacPasteboardMimeHTMLText;
  1171         new QMacPasteboardMimeHTMLText;
  1116         new QMacPasteboardMimeFileUri;
  1172         new QMacPasteboardMimeFileUri;
  1117         new QMacPasteboardMimeUrl;
  1173         new QMacPasteboardMimeUrl;
  1118         new QMacPasteboardMimeTypeName;
  1174         new QMacPasteboardMimeTypeName;
       
  1175         new QMacPasteboardMimeVCard;
  1119         //make sure our "non-standard" types are always last! --Sam
  1176         //make sure our "non-standard" types are always last! --Sam
  1120         new QMacPasteboardMimeAny;
  1177         new QMacPasteboardMimeAny;
  1121 #ifdef QT3_SUPPORT
  1178 #ifdef QT3_SUPPORT
  1122         new QMacPasteboardMimeQt3Any;
  1179         new QMacPasteboardMimeQt3Any;
  1123 #endif
  1180 #endif