┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-12-16 20:56:24 +0000
committerRafael Fernández López <[email protected]>2007-12-16 20:56:24 +0000
commit1e27cae3e58f0be65ea6c690f9144b0621829d2b (patch)
tree1f8b2223436ed46286f265cfd511bbb407082a55 /src
parentae44181e5ee8c3b75e9672146e89c92a7b7da5a2 (diff)
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: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=749225
Diffstat (limited to 'src')
-rw-r--r--src/dolphincolumnwidget.cpp2
-rw-r--r--src/dolphindetailsview.cpp2
-rw-r--r--src/dolphiniconsview.cpp2
-rw-r--r--src/draganddrophelper.cpp33
-rw-r--r--src/draganddrophelper.h2
-rw-r--r--src/sidebartreeview.cpp2
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);
}
}