diff options
Diffstat (limited to 'src/draganddrophelper.cpp')
| -rw-r--r-- | src/draganddrophelper.cpp | 33 |
1 files changed, 20 insertions, 13 deletions
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 <kdirmodel.h> #include <kicon.h> @@ -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<DolphinIconsView*>(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(); } |
