X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e9d29bcf30ccbd7c76ba37ce9efcfac1649fc46e..4e2f3dcffe2c2388e9d2d63e626ee6d03abce953:/src/kitemviews/kitemlistcontroller.cpp diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index b8d719d3b..1b9c53ccf 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -758,6 +758,7 @@ bool KItemListController::dragLeaveEvent(QGraphicsSceneDragDropEvent* event, con Q_UNUSED(transform); m_view->setAutoScroll(false); + m_view->hideDropIndicator(); KItemListWidget* widget = hoveredWidget(); if (widget) { @@ -793,6 +794,11 @@ bool KItemListController::dragMoveEvent(QGraphicsSceneDragDropEvent* event, cons const int index = newHoveredWidget->index(); if (m_model->supportsDropping(index)) { newHoveredWidget->setHovered(true); + } else if (m_model->sortRole().isEmpty()) { + // The model supports inserting of items on + // the given index. Assure that a drop-indicator + // is shown by the view. + m_view->showDropIndicator(pos); } emit itemHovered(index); @@ -817,8 +823,15 @@ bool KItemListController::dropEvent(QGraphicsSceneDragDropEvent* event, const QT m_view->setAutoScroll(false); const QPointF pos = transform.map(event->pos()); - const int index = m_view->itemAt(pos); - emit itemDropEvent(index, event); + if (m_model->sortRole().isEmpty()) { + // The model supports inserting of items on + // a given index. + const int dropIndex = m_view->showDropIndicator(pos); + m_view->hideDropIndicator(); + emit itemDropEvent(dropIndex, event); + } else { + emit itemDropEvent(m_view->itemAt(pos), event); + } return true; }