Класс QMacPasteboardMime
Класс QMacPasteboardMime преобразует тип MIME в формат Универсального идентификатора типа (UTI). Подробнее...
| Заголовок: | #include <QMacPasteboardMime> |
| qmake: | QT += macextras |
| С момента: | Qt 5.2 |
Этот класс был представлен в Qt 5.2.
Открытые функции
| QMacPasteboardMime(char t) | |
| virtual | ~QMacPasteboardMime() |
| virtual bool | canConvert(const QString &mime, QString flav) = 0 |
| virtual QList<QByteArray> | convertFromMime(const QString &mime, QVariant data, QString flav) = 0 |
| virtual QVariant | convertToMime(const QString &mime, QList<QByteArray> data, QString flav) = 0 |
| virtual QString | convertorName() = 0 |
| virtual int | count(QMimeData *mimeData) |
| virtual QString | flavorFor(const QString &mime) = 0 |
| virtual QString | mimeFor(QString flav) = 0 |
Связанные нечлены
| void | qRegisterDraggedTypes(const QStringList &types) |
Подробное описание
Средства перетаскивания и буфера обмена Qt используют стандарт MIME. В X11 это тривиально отображается на протокол Xdnd. На Mac, хотя некоторые приложения используют MIME для описания содержимого буфера обмена, чаще используется формат UTI от Apple.
Роль QMacPasteboardMime — устранить разрыв между MIME и UTI. Подклассы этого класса позволяют расширить обработку перетаскивания и буфера обмена Qt, чтобы преобразовывать данные в и из неподдерживаемых или проприетарных форматов UTI.
Подкласс QMacPasteboardMime автоматически регистрируется и активируется при создании экземпляра.
Qt имеет предварительную поддержку следующих UTI:
| UTI | Преобразуется в |
|---|---|
public.utf8-plain-text |
text/plain |
public.utf16-plain-text |
text/plain |
public.html |
text/html |
public.url |
text/uri-list |
public.file-url |
text/uri-list |
public.tiff |
application/x-qt-image |
public.vcard |
text/plain |
com.apple.traditional-mac-plain-text |
text/plain |
com.apple.pict |
application/x-qt-image |
При работе с данными MIME Qt перебирает все экземпляры QMacPasteboardMime, чтобы найти экземпляр, который может преобразовать данные в или из конкретного типа MIME. Для этого вызывается canConvert() для каждого экземпляра, начиная с последнего созданного экземпляра.
Фактические преобразования выполняются с помощью convertToMime() и convertFromMime().
Примечание: API в некоторых случаях использует термин «формат». Это сделано для обеспечения обратной совместимости, и теперь его следует понимать как UTI.
Документация по функциям-членам
QMacPasteboardMime::QMacPasteboardMime(char t)
Создаёт новый объект преобразования типа t, добавляя его в глобальный список доступных преобразователей.
[virtual] QMacPasteboardMime::~QMacPasteboardMime()
Удаляет объект преобразования, удаляя его из глобального списка доступных преобразователей.
[pure virtual] bool QMacPasteboardMime::canConvert(const QString &mime, QString flav)
Возвращает true, если преобразователь может преобразовывать данные между mime и flav, иначе — false.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QList<QByteArray> QMacPasteboardMime::convertFromMime(const QString &mime, QVariant data, QString flav)
Возвращает данные data, преобразованные из типа MIME mime в Mac UTI flav.
Обратите внимание, что все Mac-форматы должны быть самозавершающимися. Возвращаемое значение может содержать хвостовые данные.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QVariant QMacPasteboardMime::convertToMime(const QString &mime, QList<QByteArray> data, QString flav)
Возвращает данные data, преобразованные из Mac UTI flav в тип MIME mime.
Обратите внимание, что все Mac-форматы должны быть самозавершающимися. Входные данные data могут содержать хвостовые данные.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QString QMacPasteboardMime::convertorName()
Возвращает имя преобразователя.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[virtual] int QMacPasteboardMime::count(QMimeData *mimeData)
Возвращает количество элементов для заданных mimeData.
[pure virtual] QString QMacPasteboardMime::flavorFor(const QString &mime)
Возвращает Mac UTI, используемый для типа MIME mime, или 0, если этот преобразователь не поддерживает mime.
Все подклассы должны переопределить эту чисто виртуальную функцию.
[pure virtual] QString QMacPasteboardMime::mimeFor(QString flav)
Возвращает MIME UTI, используемый для Mac-формата flav, или 0, если этот преобразователь не поддерживает flav.
Все подклассы должны переопределить эту чисто виртуальную функцию.
Связанные нечлены
void qRegisterDraggedTypes(const QStringList &types)
Регистрирует заданные types как пользовательские типы буфера обмена.
Эта функция должна быть вызвана для включения событий перетаскивания для пользовательских типов буфера обмена в реализациях Cocoa. Это необходимо в дополнение к реализации подкласса QMacPasteboardMime. По умолчанию перетаскивание включено для всех стандартных типов буфера обмена.
См. также QMacPasteboardMime.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qmacpasteboardmime.html