┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphincolumnwidget.cpp14
-rw-r--r--src/dolphindetailsview.cpp14
2 files changed, 28 insertions, 0 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp
index 9a500df6b..ab7945ea7 100644
--- a/src/dolphincolumnwidget.cpp
+++ b/src/dolphincolumnwidget.cpp
@@ -247,6 +247,20 @@ void DolphinColumnWidget::dragMoveEvent(QDragMoveEvent* event)
}
}
setDirtyRegion(m_dropRect);
+
+ bool destIsDir = false;
+ if (index.isValid()) {
+ const KFileItem item = itemForIndex(index);
+ if (!item.isNull() && item.isDir()) {
+ m_dropRect = visualRect(index);
+ destIsDir = true;
+ }
+ } else { // dropping on viewport
+ destIsDir = true;
+ }
+ if (destIsDir && event->mimeData()->hasUrls()) {
+ event->acceptProposedAction();
+ }
}
void DolphinColumnWidget::dropEvent(QDropEvent* event)
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp
index 46752fc95..f58b4cd1e 100644
--- a/src/dolphindetailsview.cpp
+++ b/src/dolphindetailsview.cpp
@@ -278,6 +278,20 @@ void DolphinDetailsView::dragMoveEvent(QDragMoveEvent* event)
}
setDirtyRegion(m_dropRect);
}
+
+ bool destIsDir = false;
+ if (index.isValid()) {
+ const KFileItem item = itemForIndex(index);
+ if (!item.isNull() && item.isDir()) {
+ m_dropRect = visualRect(index);
+ destIsDir = true;
+ }
+ } else { // dropping on viewport
+ destIsDir = true;
+ }
+ if (destIsDir && event->mimeData()->hasUrls()) {
+ event->acceptProposedAction();
+ }
}
void DolphinDetailsView::dropEvent(QDropEvent* event)