Я пытаюсь перехватывать события перетаскивания из стандартного приложения адресной книги Apple в мое приложение Qt. Этот код прекрасно работает с Qt 4.4. в Mac OS X 10.4:
void
MyView::contentsDropEvent( QDropEvent* e )
{
QList<QUrl> urls = e->mimeData()->urls();
...
Затем я могу использовать URL, чтобы получить визитную карточку. Замечательное.
Но в Mac OS X 10.5 адресная книга apple больше не поддерживает text / uri-list. Так e-> mimeData () -> urls () возвращает пустой список. Что еще хуже, e-> mimeData () -> format () возвращает пустой список. Как узнать, какие vCards они перетащили?
Вот комментарий инженера Nokia Qt по этой проблеме:
"Адресная книга перестала предоставлять дроп
данные как совместимые с text / uri-list
Данные о вкусе в ОС 10.5. Не сильно мы
может с этим поделать Аромат они
вместо этого укажите «public.vcard». Мы
мог бы поддержать это как
запрос на реализацию, но моя интуиция
ощущение, что это слишком
конкретное приложение, и может так же, как
хорошо быть реализовано приложением
разработчик путем создания подкласса QMacMimeData "
Но в документации по Qt 4.4 или 4.5 QMacMimeData нет. Любые идеи о том, как я могу узнать, что они перетащили?