From 0c7f7c92ed961ce46a7b42aeeb1c30070c95ae17 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Thu, 7 Apr 2022 21:41:43 +0200 Subject: [Places Panel] Support drag and drop from Ark Accepts Ark's special dnd mime types so that archive contents can be dragged onto a place to extract and/or (mount and) switch to the hovered location. --- src/views/draganddrophelper.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/views/draganddrophelper.cpp') diff --git a/src/views/draganddrophelper.cpp b/src/views/draganddrophelper.cpp index 2466b2ab7..b3f2a4c3e 100644 --- a/src/views/draganddrophelper.cpp +++ b/src/views/draganddrophelper.cpp @@ -35,10 +35,9 @@ bool DragAndDropHelper::urlListMatchesUrl(const QList& urls, const QUrl& d KIO::DropJob* DragAndDropHelper::dropUrls(const QUrl& destUrl, QDropEvent* event, QWidget* window) { const QMimeData* mimeData = event->mimeData(); - if (mimeData->hasFormat(QStringLiteral("application/x-kde-ark-dndextract-service")) && - mimeData->hasFormat(QStringLiteral("application/x-kde-ark-dndextract-path"))) { - const QString remoteDBusClient = mimeData->data(QStringLiteral("application/x-kde-ark-dndextract-service")); - const QString remoteDBusPath = mimeData->data(QStringLiteral("application/x-kde-ark-dndextract-path")); + if (isArkDndMimeType(mimeData)) { + const QString remoteDBusClient = mimeData->data(arkDndServiceMimeType()); + const QString remoteDBusPath = mimeData->data(arkDndPathMimeType()); QDBusMessage message = QDBusMessage::createMethodCall(remoteDBusClient, remoteDBusPath, QStringLiteral("org.kde.ark.DndExtract"), QStringLiteral("extractSelectedFilesTo")); @@ -63,3 +62,8 @@ void DragAndDropHelper::clearUrlListMatchesUrlCache() DragAndDropHelper::m_urlListMatchesUrlCache.clear(); } +bool DragAndDropHelper::isArkDndMimeType(const QMimeData *mimeData) +{ + return mimeData->hasFormat(arkDndServiceMimeType()) + && mimeData->hasFormat(arkDndPathMimeType()); +} -- cgit v1.3