PICARD-2689: Render the actually dragged element instead of the first selected

Fixes issues with an empty rectangle being shown during dragging of items
if the first selected item is not visible.
This commit is contained in:
Philipp Wolfer
2023-07-24 09:28:16 +02:00
parent 9ca6cf9364
commit d9e5214110

View File

@@ -708,8 +708,9 @@ class BaseTreeView(QtWidgets.QTreeWidget):
if items:
drag = QtGui.QDrag(self)
drag.setMimeData(self.mimeData(items))
# Render the first selected element as drag representation
rectangle = self.visualItemRect(items[0])
# Render the dragged element as drag representation
item = self.currentItem()
rectangle = self.visualItemRect(item)
pixmap = QtGui.QPixmap(rectangle.width(), rectangle.height())
self.viewport().render(pixmap, QtCore.QPoint(), QtGui.QRegion(rectangle))
drag.setPixmap(pixmap)