Don't scroll display after drop

With no code, display scroll back to where the source rows came from.
With code we had, we ensured dropped rows were visible, but display
would still scroll.
Now freeze display as it is when rows are dropped.
This commit is contained in:
Keith Edmunds 2023-05-01 18:04:03 +01:00
parent e3ad7787af
commit c0ae9eba9f

View File

@ -233,6 +233,7 @@ class PlaylistTab(QTableWidget):
if not event.source() == self:
return # We don't accept external drops
top_row = self.rowAt(0)
row_set = set([mi.row() for mi in self.selectedIndexes()])
targetRow = self.indexAt(event.position().toPoint()).row()
row_set.discard(targetRow)
@ -262,11 +263,10 @@ class PlaylistTab(QTableWidget):
for row in reversed(sorted(rowMapping.keys())):
self.removeRow(row)
self.resizeRowsToContents()
event.accept()
# Scroll to drop zone
self.scrollToItem(self.item(targetRow, 1),
QAbstractItemView.ScrollHint.PositionAtCenter)
self.scrollToItem(self.item(top_row, 1),
QAbstractItemView.ScrollHint.PositionAtTop)
event.accept()
# Reset drag mode to allow row selection by dragging
self.setDragEnabled(False)