В общем нужно, чтобы приложение могло принимать файл через буфер обмена от файлового менеджера. Если он там вырезан, то он должен быть перемещён, если скопирован, соответственно скопирован...
Выглядит так:
в конструкторе:
clipboard_ = QApplication::clipboard();
connect(clipboard_, SIGNAL(dataChanged()), SLOT(onClipboardChanged()));
...
потом вот:
void MainWindow::onClipboardChanged()
{
const QMimeData *mimeData = clipboard_->mimeData();
if (mimeData->hasUrls()){
foreach (QUrl url, mimeData->urls()){
qDebug() << url.path();
}
}
Таким образом, если в файловом менеджере вырезать или скопировать файл (или несколько файлов), приложение получает путь к ним... но как узнать, какое действие было выбрано, вырезать или скопировать???