Compare commits
2 Commits
65f2f4f351
...
c0ae9eba9f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0ae9eba9f | ||
|
|
e3ad7787af |
@ -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)
|
||||
@ -251,15 +252,21 @@ class PlaylistTab(QTableWidget):
|
||||
rowMapping[row + len(rows)] = targetRow + idx
|
||||
colCount = self.columnCount()
|
||||
for srcRow, tgtRow in sorted(rowMapping.items()):
|
||||
if self._get_row_track_id(srcRow):
|
||||
# This is a track row
|
||||
for col in range(0, colCount):
|
||||
self.setItem(tgtRow, col, self.takeItem(srcRow, col))
|
||||
else:
|
||||
self.setItem(tgtRow, HEADER_NOTES_COLUMN,
|
||||
self.takeItem(srcRow, HEADER_NOTES_COLUMN))
|
||||
self.setSpan(tgtRow, HEADER_NOTES_COLUMN, 1, len(columns) - 1)
|
||||
for row in reversed(sorted(rowMapping.keys())):
|
||||
self.removeRow(row)
|
||||
event.accept()
|
||||
|
||||
self.resizeRowsToContents()
|
||||
# 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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user