X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ea548584637bf0f6da5d8dac0e7172a4cdc1fc50..0abbaf9e11d166da461bb33bc6abeb5ddfb5fa2c:/src/dolphindetailsview.cpp diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index c405eeb8b..ba82fc901 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -28,7 +28,6 @@ #include "dolphin_detailsmodesettings.h" #include -#include #include #include @@ -156,15 +155,18 @@ void DolphinDetailsView::contextMenuEvent(QContextMenuEvent* event) void DolphinDetailsView::mousePressEvent(QMouseEvent* event) { - if (!indexAt(event->pos()).isValid()) { + m_controller->triggerActivation(); + + QTreeView::mousePressEvent(event); + + const QModelIndex index = indexAt(event->pos()); + if (!index.isValid() || (index.column() != KDirModel::Name)) { const Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); if (!(modifier & Qt::ShiftModifier) && !(modifier & Qt::ControlModifier)) { clearSelection(); } } - QTreeView::mousePressEvent(event); - if (event->button() == Qt::LeftButton) { m_showElasticBand = true; @@ -191,7 +193,6 @@ void DolphinDetailsView::mouseReleaseEvent(QMouseEvent* event) updateElasticBand(); m_showElasticBand = false; } - m_controller->triggerActivation(); } void DolphinDetailsView::dragEnterEvent(QDragEnterEvent* event) @@ -221,11 +222,15 @@ void DolphinDetailsView::dragMoveEvent(QDragMoveEvent* event) QTreeView::dragMoveEvent(event); // TODO: remove this code when the issue #160611 is solved in Qt 4.4 - const QPoint pos(0, event->pos().y()); - const QModelIndex index = indexAt(pos); - setDirtyRegion(m_dropRect); - m_dropRect = visualRect(index); setDirtyRegion(m_dropRect); + const QModelIndex index = indexAt(event->pos()); + if (!index.isValid() || (index.column() != KDirModel::Name)) { + m_dragging = false; + } else { + m_dragging = true; + m_dropRect = visualRect(index); + setDirtyRegion(m_dropRect); + } } void DolphinDetailsView::dropEvent(QDropEvent* event) @@ -260,16 +265,10 @@ void DolphinDetailsView::paintEvent(QPaintEvent* event) painter.restore(); } + // TODO: remove this code when the issue #160611 is solved in Qt 4.4 if (m_dragging) { - // TODO: remove this code when the issue #160611 is solved in Qt 4.4 - QPainter painter(viewport()); - painter.save(); - QBrush brush(m_viewOptions.palette.brush(QPalette::Normal, QPalette::Highlight)); - QColor color = brush.color(); - color.setAlpha(64); - brush.setColor(color); - painter.fillRect(m_dropRect, brush); - painter.restore(); + const QBrush& brush = m_viewOptions.palette.brush(QPalette::Normal, QPalette::Highlight); + DolphinController::drawHoverIndication(viewport(), m_dropRect, brush); } }