X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/bbf9faa05396d66b3dbe101a0c309459e3ffacb1..d6488887ecf69d7f192b94de8dce34fae0b7eb76:/src/dolphincolumnwidget.cpp diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index c212e6ad8..677215972 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -26,8 +26,8 @@ #include "dolphinmodel.h" #include "dolphinsortfilterproxymodel.h" #include "dolphinsettings.h" - #include "dolphin_columnmodesettings.h" +#include "draganddrophelper.h" #include #include @@ -197,6 +197,11 @@ void DolphinColumnWidget::setNameFilter(const QString& nameFilter) m_proxyModel->setFilterRegExp(nameFilter); } +void DolphinColumnWidget::startDrag(Qt::DropActions supportedActions) +{ + DragAndDropHelper::startDrag(this, supportedActions); +} + void DolphinColumnWidget::dragEnterEvent(QDragEnterEvent* event) { if (event->mimeData()->hasUrls()) { @@ -222,7 +227,14 @@ void DolphinColumnWidget::dragMoveEvent(QDragMoveEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 const QModelIndex index = indexAt(event->pos()); setDirtyRegion(m_dropRect); - m_dropRect = visualRect(index); + + m_dropRect.setSize(QSize()); // set as invalid + if (index.isValid()) { + const KFileItem item = itemForIndex(index); + if (!item.isNull() && item.isDir()) { + m_dropRect = visualRect(index); + } + } setDirtyRegion(m_dropRect); } @@ -231,14 +243,11 @@ void DolphinColumnWidget::dropEvent(QDropEvent* event) const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); if (!urls.isEmpty()) { const QModelIndex index = indexAt(event->pos()); - if (index.isValid()) { - const KFileItem item = itemForIndex(index); - m_view->m_controller->indicateDroppedUrls(urls, - url(), - item, - event->source()); - event->acceptProposedAction(); - } + const KFileItem item = itemForIndex(index); + m_view->m_controller->indicateDroppedUrls(urls, + url(), + item); + event->acceptProposedAction(); } QListView::dropEvent(event); m_dragging = false; @@ -270,7 +279,7 @@ void DolphinColumnWidget::paintEvent(QPaintEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 if (m_dragging) { const QBrush& brush = m_viewOptions.palette.brush(QPalette::Normal, QPalette::Highlight); - DolphinController::drawHoverIndication(viewport(), m_dropRect, brush); + DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush); } } @@ -325,6 +334,7 @@ void DolphinColumnWidget::selectionChanged(const QItemSelection& selected, const selModel->select(selected, QItemSelectionModel::Select); selModel->select(deselected, QItemSelectionModel::Deselect); } + void DolphinColumnWidget::triggerItem(const QModelIndex& index) { const KFileItem item = itemForIndex(index);