From: Peter Penz Date: Tue, 12 Jun 2012 11:19:16 +0000 (+0200) Subject: Drag-pixmap fixes X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/c95255eb9087f1ff8845e4fed445198a0e22b221 Drag-pixmap fixes - Don't use the selection-tinted icon when dragging a single item - Decrease the vertical gap for the hotspot - Prevent drawing tree-lines when dragging items for the Places Panel CCBUG: 301624 --- diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 2c2101935..76f7fa1cd 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -1084,9 +1084,7 @@ void KItemListController::startDragging() const QPixmap pixmap = m_view->createDragPixmap(selectedItems); drag->setPixmap(pixmap); - // TODO: The vertical hotspot of -24 should be replaced by the - // height of the QCursor-pixmap. - const QPoint hotSpot(pixmap.width() / 2, -24); + const QPoint hotSpot(pixmap.width() / 2, 0); drag->setHotSpot(hotSpot); drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction); diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index 45329afb3..6d0cec232 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -370,8 +370,13 @@ QPixmap KItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem* option const bool oldAlternateBackground = m_alternateBackground; setAlternateBackground(false); + const bool wasSelected = m_selected; + setSelected(false); + paint(&painter, option, widget); + setAlternateBackground(oldAlternateBackground); + setSelected(wasSelected); return pixmap; } diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index d87ae9497..acd426cf2 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -411,7 +411,7 @@ QPixmap KStandardItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem QWidget* widget) { QPixmap pixmap = KItemListWidget::createDragPixmap(option, widget); - if (m_layout != DetailsLayout || styleOption().extendedSelectionRegion) { + if (m_layout != DetailsLayout) { return pixmap; }