From b6e8d6a9786937602e76d3ed26ca2ba4043b2336 Mon Sep 17 00:00:00 2001 From: Harald Sitter Date: Tue, 3 May 2022 13:43:25 +0200 Subject: [PATCH] support passing drag and drop through portal uses helpers form kcoreaddons --- lib/documentview/documentview.cpp | 6 ++++-- lib/thumbnailview/thumbnailview.cpp | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/documentview/documentview.cpp b/lib/documentview/documentview.cpp index 829268d3..02045f4e 100644 --- a/lib/documentview/documentview.cpp +++ b/lib/documentview/documentview.cpp @@ -391,7 +391,9 @@ struct DocumentViewPrivate { } mDrag = new QDrag(q); const auto itemList = KFileItemList({q->document()->url()}); - mDrag->setMimeData(MimeTypeUtils::selectionMimeData(itemList, MimeTypeUtils::DropTarget)); + auto *mimeData = MimeTypeUtils::selectionMimeData(itemList, MimeTypeUtils::DropTarget); + KUrlMimeData::exportUrlsToPortal(mimeData); + mDrag->setMimeData(mimeData); if (q->document()->isModified()) { setDragPixmap(QPixmap::fromImage(q->document()->image())); @@ -1109,7 +1111,7 @@ void DocumentView::dropEvent(QGraphicsSceneDragDropEvent *event) { QGraphicsWidget::dropEvent(event); // Since we're capturing drops in View mode, we only support one url - const QUrl url = event->mimeData()->urls().first(); + const QUrl url = KUrlMimeData::urlsFromMimeData(event->mimeData()).first(); if (UrlUtils::urlIsDirectory(url)) { Q_EMIT openDirUrlRequested(url); } else { diff --git a/lib/thumbnailview/thumbnailview.cpp b/lib/thumbnailview/thumbnailview.cpp index c4857113..adf3f3fe 100644 --- a/lib/thumbnailview/thumbnailview.cpp +++ b/lib/thumbnailview/thumbnailview.cpp @@ -727,7 +727,9 @@ void ThumbnailView::startDrag(Qt::DropActions) } auto drag = new QDrag(this); - drag->setMimeData(MimeTypeUtils::selectionMimeData(selectedFiles, MimeTypeUtils::DropTarget)); + auto *mimeData = MimeTypeUtils::selectionMimeData(selectedFiles, MimeTypeUtils::DropTarget); + KUrlMimeData::exportUrlsToPortal(mimeData); + drag->setMimeData(mimeData); d->initDragPixmap(drag, indexes); drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction); } -- GitLab