Implemented saving of the sortorder to the .wbz.m3u

This commit is contained in:
The Wobbler 2025-02-23 18:05:28 +01:00
parent 894b3d213a
commit 78b60dba02
3 changed files with 68 additions and 4 deletions

View file

@ -9,6 +9,7 @@ from .track import TrackItem
class PlaylistView(QTreeWidget):
itemDropped = pyqtSignal(QTreeWidget, list)
sort_signal = pyqtSignal(int, Qt.SortOrder)
playing_mark = QIcon.fromTheme(QIcon.ThemeIcon.MediaPlaybackStart)
@ -42,6 +43,7 @@ class PlaylistView(QTreeWidget):
self.itemActivated.connect(self.on_track_activation)
self.header.sectionClicked.connect(self.on_header_click)
self.sort_signal.connect(self.sortItems)
def on_header_click(self, section_index: int):
if section_index == 0: # this would just invert the current sorting
@ -73,7 +75,10 @@ class PlaylistView(QTreeWidget):
# convert True/False to Qt.SortOrder.AscendingOrder/Qt.SortOrder.DescendingOrder
qorder = Qt.SortOrder.AscendingOrder if order else Qt.SortOrder.DescendingOrder
self.sortItems(index, qorder)
# somehow, QTreeWidget.sortItems() cant be called from a thread, so we have to use a signal to execute it
# in the main thread
self.sort_signal.emit(index, qorder)
# self.sortItems(index, qorder)
self.on_sort()