┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/draganddrophelper.cpp
diff options
context:
space:
mode:
authorKai Uwe Broulik <[email protected]>2022-04-07 21:41:43 +0200
committerKai Uwe Broulik <[email protected]>2022-04-11 18:01:51 +0200
commit0c7f7c92ed961ce46a7b42aeeb1c30070c95ae17 (patch)
tree82dabd76e9ab21f0d2c24b9aaef8bcad0b12c25b /src/views/draganddrophelper.cpp
parent3bf471e02a440bd008d69c5939b7c5bf2c03df54 (diff)
[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.
Diffstat (limited to 'src/views/draganddrophelper.cpp')
-rw-r--r--src/views/draganddrophelper.cpp12
1 files changed, 8 insertions, 4 deletions
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<QUrl>& 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());
+}