URL To paste - | raw -
Fri Feb 02 2018 22:50:52 GMT+0000 (Coordinated Universal Time)
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 130936488..b5438e5d4 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -46,6 +46,7 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v
m_singleClickActivationEnforced(false),
m_selectionTogglePressed(false),
m_clearSelectionIfItemsAreNotDragged(false),
+ m_currentDropAcceptState(false),
m_selectionBehavior(NoSelection),
m_autoActivationBehavior(ActivationAndExpansion),
m_mouseDoubleClickAction(ActivateItemOnly),
@@ -849,6 +850,9 @@ bool KItemListController::dragEnterEvent(QGraphicsSceneDragDropEvent* event, con
{
Q_UNUSED(event);
Q_UNUSED(transform);
+
+ m_currentDropAcceptState = !DragAndDropHelper::urlListMatchesUrl(event->mimeData()->urls(), m_model->directory());
+
return false;
}
@@ -857,6 +861,8 @@ bool KItemListController::dragLeaveEvent(QGraphicsSceneDragDropEvent* event, con
Q_UNUSED(event);
Q_UNUSED(transform);
+ m_currentDropAcceptState = false;
+
m_autoActivationTimer->stop();
m_view->setAutoScroll(false);
m_view->hideDropIndicator();
@@ -876,7 +882,6 @@ bool KItemListController::dragMoveEvent(QGraphicsSceneDragDropEvent* event, cons
}
- QUrl hoveredDir = m_model->directory();
KItemListWidget* oldHoveredWidget = hoveredWidget();
const QPointF pos = transform.map(event->pos());
@@ -901,7 +906,7 @@ bool KItemListController::dragMoveEvent(QGraphicsSceneDragDropEvent* event, cons
const int index = newHoveredWidget->index();
if (m_model->isDir(index)) {
- hoveredDir = m_model->url(index);
+ m_currentDropAcceptState = !DragAndDropHelper::urlListMatchesUrl(event->mimeData()->urls(), m_model->url(index));
}
if (!droppingBetweenItems) {
@@ -929,7 +934,7 @@ bool KItemListController::dragMoveEvent(QGraphicsSceneDragDropEvent* event, cons
m_view->hideDropIndicator();
}
- event->setAccepted(!DragAndDropHelper::urlListMatchesUrl(event->mimeData()->urls(), hoveredDir));
+ event->setAccepted(m_currentDropAcceptState);
return false;
}
diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h
index 3de5edece..c9ad4b7d4 100644
--- a/src/kitemviews/kitemlistcontroller.h
+++ b/src/kitemviews/kitemlistcontroller.h
@@ -311,6 +311,7 @@ private:
bool m_singleClickActivationEnforced;
bool m_selectionTogglePressed;
bool m_clearSelectionIfItemsAreNotDragged;
+ bool m_currentDropAcceptState;
SelectionBehavior m_selectionBehavior;
AutoActivationBehavior m_autoActivationBehavior;
MouseDoubleClickAction m_mouseDoubleClickAction;