]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistwidget.cpp
Merge branch 'KDE/4.12' into KDE/4.13
[dolphin.git] / src / kitemviews / kitemlistwidget.cpp
index 45329afb335b555f62b69cb14469005421490076..44754a694ce5dd1ccde6bca0f7243404f2dcbab7 100644 (file)
@@ -279,6 +279,13 @@ bool KItemListWidget::isHovered() const
     return m_hovered;
 }
 
+void KItemListWidget::setHoverPosition(const QPointF& pos)
+{
+    if (m_selectionToggle) {
+        m_selectionToggle->setHovered(m_selectionToggle->contains(pos));
+    }
+}
+
 void KItemListWidget::setAlternateBackground(bool enable)
 {
     if (m_alternateBackground != enable) {
@@ -369,9 +376,18 @@ QPixmap KItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem* option
     QPainter painter(&pixmap);
 
     const bool oldAlternateBackground = m_alternateBackground;
+    const bool wasSelected = m_selected;
+    const bool wasHovered = m_hovered;
+
     setAlternateBackground(false);
+    setSelected(false);
+    setHovered(false);
+
     paint(&painter, option, widget);
+
     setAlternateBackground(oldAlternateBackground);
+    setSelected(wasSelected);
+    setHovered(wasHovered);
 
     return pixmap;
 }
@@ -442,6 +458,12 @@ void KItemListWidget::resizeEvent(QGraphicsSceneResizeEvent* event)
 {
     QGraphicsWidget::resizeEvent(event);
     clearHoverCache();
+
+    if (m_selectionToggle) {
+        const QRectF& toggleRect = selectionToggleRect();
+        m_selectionToggle->setPos(toggleRect.topLeft());
+        m_selectionToggle->resize(toggleRect.size());
+    }
 }
 
 qreal KItemListWidget::hoverOpacity() const