diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincolumnwidget.cpp | 2 | ||||
| -rw-r--r-- | src/dolphindetailsview.cpp | 2 | ||||
| -rw-r--r-- | src/dolphiniconsview.cpp | 2 | ||||
| -rw-r--r-- | src/draganddrophelper.cpp | 33 | ||||
| -rw-r--r-- | src/draganddrophelper.h | 2 | ||||
| -rw-r--r-- | src/sidebartreeview.cpp | 2 |
6 files changed, 25 insertions, 18 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 7d29251ea..9a500df6b 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -290,7 +290,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 = viewOptions().palette.brush(QPalette::Normal, QPalette::Highlight); - DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush); + DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush); } } diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 36ea99ad8..46752fc95 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -320,7 +320,7 @@ void DolphinDetailsView::paintEvent(QPaintEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 if (m_dragging) { const QBrush& brush = viewOptions().palette.brush(QPalette::Normal, QPalette::Highlight); - DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush); + DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush); } } diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index 0c888d871..8d474f4bc 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -268,7 +268,7 @@ void DolphinIconsView::paintEvent(QPaintEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 if (m_dragging) { const QBrush& brush = viewOptions().palette.brush(QPalette::Normal, QPalette::Highlight); - DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush); + DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush); } } 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(); } diff --git a/src/draganddrophelper.h b/src/draganddrophelper.h index 8003b75d2..8e1e4531f 100644 --- a/src/draganddrophelper.h +++ b/src/draganddrophelper.h @@ -44,7 +44,7 @@ public: static void startDrag(QAbstractItemView* itemView, Qt::DropActions supportedActions); // TODO: remove this method when the issue #160611 is solved in Qt 4.4 - static void drawHoverIndication(QWidget* widget, + static void drawHoverIndication(QAbstractItemView* itemView, const QRect& bounds, const QBrush& brush); }; diff --git a/src/sidebartreeview.cpp b/src/sidebartreeview.cpp index 9ab10a0b2..af676541a 100644 --- a/src/sidebartreeview.cpp +++ b/src/sidebartreeview.cpp @@ -155,7 +155,7 @@ void SidebarTreeView::paintEvent(QPaintEvent* event) // TODO: remove this code when the issue #160611 is solved in Qt 4.4 if (m_dragging) { const QBrush& brush = palette().brush(QPalette::Normal, QPalette::Highlight); - DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush); + DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush); } } |
