#!/usr/bin/python3 from PyQt6.QtCore import pyqtSignal from PyQt6.QtGui import QDropEvent from PyQt6.QtWidgets import QTreeWidget, QAbstractItemView class PlaylistView(QTreeWidget): itemDropped = pyqtSignal(QTreeWidget, list) def __init__(self, playlist, parent=None): super().__init__(parent) self.playlist = playlist self.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove) self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) self.setColumnCount(4) headers = [ "", "#", "Title", "Artist", "Album", "# Custom Sorting" ] self.setHeaderLabels(headers) def update_track_numbers(self): pass def dropEvent(self, event: QDropEvent): items = self.selectedItems() # dragged items are always selected items self.itemDropped.emit(self, items) super().dropEvent(event) event.accept()