Я создаю приложение на OSX, используя C ++ / Qt. Приложение управляет передачей файла из приложения в поисковик. Я использую Drag and Drop.
Приложение отображает файлы с устройства Android. Я могу скопировать файл из Finder на устройство Android без каких-либо проблем.
но я не могу заставить его работать с Android-устройства для поиска. У меня есть DragLeaveEvent, который срабатывает, но я все еще не понимаю, как поймать данные для пункта назначения.
Когда вы выходите из приложения, мышь находится на рабочем столе, я должен иметь возможность указать путь, где находится курсор, чтобы начать копирование с источником (я его уже получил) и местом назначения.
При перетаскивании из Finder в приложение я получаю исходный код, используя mimeData.urls, и я должен был использовать его при перетаскивании из приложения в Finder, но это не поддерживается или URL-адреса пусты.
void TreeView::dragLeaveEvent(QDragLeaveEvent* event)
{
qDebug() << "On Drag Leave Event";
QList<QTreeWidgetItem *> item;
item = this->selectedItems();
if (item.empty())
return;
else {
QStringList ListOfFiles;
QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
QStringList pathList;
QList<QUrl> urlList = mimeData->urls();
for (int i = 0; i < urlList.size() && i < 32; ++i)
{
pathList.append(urlList.at(i).toLocalFile());
qDebug() << urlList.at(i).toLocalFile();
}
for (int i=0; i<item.count();i++) {
ListOfFiles.append(item[i]->text(0));
qDebug() << item[i]->text(0);
}
}
event->accept();
QTreeWidget::dragLeaveEvent(event);
}
Любая идея ?
Спасибо
Задача ещё не решена.