]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontroller.cpp
Merge branch 'Applications/17.04'
[dolphin.git] / src / kitemviews / kitemlistcontroller.cpp
index 6c32e4b37fbbd438de798e89d2593ccc57a808b7..a9596977105e9c43698bd4fcc4924ad5bed4da56 100644 (file)
@@ -801,6 +801,22 @@ bool KItemListController::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event,
         }
     }
 
+    if (event->button() & Qt::RightButton) {
+        m_selectionManager->clearSelection();
+        if (index >= 0) {
+            m_selectionManager->setSelected(index);
+            emit itemContextMenuRequested(index, event->screenPos());
+        } else {
+            const QRectF headerBounds = m_view->headerBoundaries();
+            if (headerBounds.contains(event->pos())) {
+                emit headerContextMenuRequested(event->screenPos());
+            } else {
+                emit viewContextMenuRequested(event->screenPos());
+            }
+        }
+        return true;
+    }
+
     bool emitItemActivated = !(m_view->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) || m_singleClickActivationEnforced) &&
                              (event->button() & Qt::LeftButton) &&
                              index >= 0 && index < m_model->count();
@@ -917,7 +933,8 @@ bool KItemListController::dropEvent(QGraphicsSceneDragDropEvent* event, const QT
         emit itemDropEvent(m_view->itemAt(pos), event);
     }
 
-    QAccessible::updateAccessibility(view(), 0, QAccessible::DragDropEnd);
+    QAccessibleEvent accessibilityEvent(view(), QAccessible::DragDropEnd);
+    QAccessible::updateAccessibility(&accessibilityEvent);
 
     return true;
 }
@@ -1167,11 +1184,13 @@ void KItemListController::startDragging()
     const QPixmap pixmap = m_view->createDragPixmap(selectedItems);
     drag->setPixmap(pixmap);
 
-    const QPoint hotSpot(pixmap.width() / 2, 0);
+    const QPoint hotSpot((pixmap.width() / pixmap.devicePixelRatio()) / 2, 0);
     drag->setHotSpot(hotSpot);
 
     drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction);
-    QAccessible::updateAccessibility(view(), 0, QAccessible::DragDropStart);
+
+    QAccessibleEvent accessibilityEvent(view(), QAccessible::DragDropStart);
+    QAccessible::updateAccessibility(&accessibilityEvent);
 }
 
 KItemListWidget* KItemListController::hoveredWidget() const