Implement random sort
This commit is contained in:
parent
b116f062e9
commit
609544ddd4
@ -7,6 +7,7 @@ from datetime import datetime, timedelta
|
||||
from enum import auto, Enum
|
||||
from operator import attrgetter
|
||||
from pprint import pprint
|
||||
from random import shuffle
|
||||
from typing import List, Optional
|
||||
|
||||
from PyQt6.QtCore import (
|
||||
@ -1315,6 +1316,14 @@ class PlaylistModel(QAbstractTableModel):
|
||||
|
||||
self.sort_by_attribute(row_numbers, "lastplayed")
|
||||
|
||||
def sort_randomly(self, row_numbers: List[int]) -> None:
|
||||
"""
|
||||
Sort selected rows randomly
|
||||
"""
|
||||
|
||||
shuffle(row_numbers)
|
||||
self.move_rows(row_numbers, min(row_numbers))
|
||||
|
||||
def sort_by_title(self, row_numbers: List[int]) -> None:
|
||||
"""
|
||||
Sort selected rows by title
|
||||
@ -1603,6 +1612,9 @@ class PlaylistProxyModel(QSortFilterProxyModel):
|
||||
def sort_by_lastplayed(self, row_numbers: List[int]) -> None:
|
||||
return self.source_model.sort_by_lastplayed(row_numbers)
|
||||
|
||||
def sort_randomly(self, row_numbers: List[int]) -> None:
|
||||
return self.source_model.sort_randomly(row_numbers)
|
||||
|
||||
def sort_by_title(self, row_numbers: List[int]) -> None:
|
||||
return self.source_model.sort_by_title(row_numbers)
|
||||
|
||||
|
||||
@ -487,6 +487,11 @@ class PlaylistTab(QTableView):
|
||||
lambda: proxy_model.sort_by_lastplayed(self.get_selected_rows()),
|
||||
parent_menu=sort_menu,
|
||||
)
|
||||
self._add_context_menu(
|
||||
"randomly",
|
||||
lambda: proxy_model.sort_randomly(self.get_selected_rows()),
|
||||
parent_menu=sort_menu,
|
||||
)
|
||||
|
||||
# Info
|
||||
if track_row:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user