From 1e27cae3e58f0be65ea6c690f9144b0621829d2b Mon Sep 17 00:00:00 2001 From: Rafael Fernández López Date: Sun, 16 Dec 2007 20:56:24 +0000 Subject: The drag&drop helper did not make the difference between the different kind of views. The only view that draws the hover indicator with rounded corners is the icon view mode. For that reason, the drop marker with the detailed view was drawn with rounded corners. For making it consistent, we draw the drop indicator as the hover effect indicator, so the only one that draws rounded corners is the icon one. CCMAIL: peter.penz@gmx.at svn path=/trunk/KDE/kdebase/apps/; revision=749225 --- src/draganddrophelper.cpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src/draganddrophelper.cpp') diff --git a/src/draganddrophelper.cpp b/src/draganddrophelper.cpp index 39af6a3ce..0148f731b 100644 --- a/src/draganddrophelper.cpp +++ b/src/draganddrophelper.cpp @@ -18,6 +18,7 @@ ***************************************************************************/ #include "draganddrophelper.h" +#include "dolphiniconsview.h" #include #include @@ -57,7 +58,7 @@ void DragAndDropHelper::startDrag(QAbstractItemView* itemView, Qt::DropActions s } } -void DragAndDropHelper::drawHoverIndication(QWidget* widget, +void DragAndDropHelper::drawHoverIndication(QAbstractItemView* itemView, const QRect& bounds, const QBrush& brush) { @@ -65,6 +66,8 @@ void DragAndDropHelper::drawHoverIndication(QWidget* widget, return; } + QWidget* widget = itemView->viewport(); + QPainter painter(widget); painter.save(); QBrush blendedBrush(brush); @@ -72,18 +75,22 @@ void DragAndDropHelper::drawHoverIndication(QWidget* widget, color.setAlpha(64); blendedBrush.setColor(color); - const int radius = 10; - QPainterPath path(QPointF(bounds.left(), bounds.top() + radius)); - path.quadTo(bounds.left(), bounds.top(), bounds.left() + radius, bounds.top()); - path.lineTo(bounds.right() - radius, bounds.top()); - path.quadTo(bounds.right(), bounds.top(), bounds.right(), bounds.top() + radius); - path.lineTo(bounds.right(), bounds.bottom() - radius); - path.quadTo(bounds.right(), bounds.bottom(), bounds.right() - radius, bounds.bottom()); - path.lineTo(bounds.left() + radius, bounds.bottom()); - path.quadTo(bounds.left(), bounds.bottom(), bounds.left(), bounds.bottom() - radius); - path.closeSubpath(); + if (dynamic_cast(itemView)) { + const int radius = 10; + QPainterPath path(QPointF(bounds.left(), bounds.top() + radius)); + path.quadTo(bounds.left(), bounds.top(), bounds.left() + radius, bounds.top()); + path.lineTo(bounds.right() - radius, bounds.top()); + path.quadTo(bounds.right(), bounds.top(), bounds.right(), bounds.top() + radius); + path.lineTo(bounds.right(), bounds.bottom() - radius); + path.quadTo(bounds.right(), bounds.bottom(), bounds.right() - radius, bounds.bottom()); + path.lineTo(bounds.left() + radius, bounds.bottom()); + path.quadTo(bounds.left(), bounds.bottom(), bounds.left(), bounds.bottom() - radius); + path.closeSubpath(); - painter.setRenderHint(QPainter::Antialiasing); - painter.fillPath(path, blendedBrush); + painter.setRenderHint(QPainter::Antialiasing); + painter.fillPath(path, blendedBrush); + } else { + painter.fillRect(bounds, blendedBrush); + } painter.restore(); } -- cgit v1.3