curds: Add default sorting orders to each playlist
And disable sorting on the Previous playlist, since doing so would basically be changing history. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
9b80a93804
commit
b6830dc337
|
@ -5,11 +5,19 @@ from .. import notify
|
|||
|
||||
|
||||
class ArtistPlaylist(playlist.Playlist):
|
||||
def __init__(self, name, icon):
|
||||
playlist.Playlist.__init__(self, name, icon)
|
||||
self.sort("album")
|
||||
self.sort("discnumber")
|
||||
self.sort("tracknumber")
|
||||
|
||||
def add(self, track):
|
||||
playlist.Playlist.add(self, track)
|
||||
alist = self.lookup(track["album"])
|
||||
if alist == None:
|
||||
alist = playlist.Playlist(track["album"], "media-optical-cd-audio")
|
||||
alist.sort("discnumber")
|
||||
alist.sort("tracknumber")
|
||||
self.insert_child(alist)
|
||||
alist.add(track)
|
||||
|
||||
|
|
|
@ -5,6 +5,11 @@ from .. import notify
|
|||
class CollectionPlaylist(playlist.Playlist):
|
||||
def __init__(self):
|
||||
playlist.Playlist.__init__(self, "Collection", "media-playback-start", can_loop=False)
|
||||
self.sort("artist")
|
||||
self.sort("date")
|
||||
self.sort("album")
|
||||
self.sort("discnumber")
|
||||
self.sort("tracknumber")
|
||||
notify.register("new-track", self.add)
|
||||
self.loop = True
|
||||
|
||||
|
|
|
@ -6,6 +6,11 @@ from .. import notify
|
|||
class DecadePlaylist(playlist.Playlist):
|
||||
def __init__(self, track, icon):
|
||||
playlist.Playlist.__init__(self, track["date"], icon)
|
||||
self.sort("date")
|
||||
self.sort("artist")
|
||||
self.sort("album")
|
||||
self.sort("discnumber")
|
||||
self.sort("tracknumber")
|
||||
|
||||
def __normalize__(self, name):
|
||||
if isinstance(name, int):
|
||||
|
@ -17,6 +22,10 @@ class DecadePlaylist(playlist.Playlist):
|
|||
ylist = self.lookup(str(track["date"]))
|
||||
if ylist == None:
|
||||
ylist = playlist.Playlist(str(track["date"]), self.icon)
|
||||
ylist.sort("artist")
|
||||
ylist.sort("album")
|
||||
ylist.sort("discnumber")
|
||||
ylist.sort("tracknumber")
|
||||
self.insert_child(ylist)
|
||||
ylist.add(track)
|
||||
|
||||
|
|
|
@ -12,6 +12,11 @@ class GenreNode(node.PlaylistNode):
|
|||
plist = self.lookup(track["genre"])
|
||||
if plist == None:
|
||||
plist = playlist.Playlist(track["genre"], self.icon)
|
||||
plist.sort("artist")
|
||||
plist.sort("year")
|
||||
plist.sort("album")
|
||||
plist.sort("discnumber")
|
||||
plist.sort("tracknumber")
|
||||
self.insert_child(plist)
|
||||
plist.add(track)
|
||||
|
||||
|
|
|
@ -11,6 +11,11 @@ library_thread = threadqueue.ThreadQueue()
|
|||
class LibraryPlaylist(playlist.Playlist):
|
||||
def __init__(self, path):
|
||||
playlist.Playlist.__init__(self, path, "folder-music")
|
||||
self.sort("artist")
|
||||
self.sort("year")
|
||||
self.sort("album")
|
||||
self.sort("discnumber")
|
||||
self.sort("tracknumber")
|
||||
self.scan()
|
||||
|
||||
def __normalize__(self, name):
|
||||
|
|
|
@ -12,3 +12,6 @@ class PreviousPlaylist(playlist.Playlist):
|
|||
self.current = 0
|
||||
notify.notify("add-track", self, track, 0)
|
||||
self.changed()
|
||||
|
||||
def sort(self, field):
|
||||
return False
|
||||
|
|
|
@ -27,6 +27,7 @@ class TestArtistPlaylist(unittest.TestCase):
|
|||
plist = anode.nth_child(0)
|
||||
self.assertEqual(plist.name, "Test Artist 01")
|
||||
self.assertEqual(plist.icon, "avatar-default-symbolic")
|
||||
self.assertEqual(plist.sort_order, [ "album", "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(plist), 1)
|
||||
self.assertEqual(plist[0], track1)
|
||||
|
||||
|
@ -34,6 +35,7 @@ class TestArtistPlaylist(unittest.TestCase):
|
|||
alist = plist.nth_child(0)
|
||||
self.assertEqual(alist.name, "Test Album 1")
|
||||
self.assertEqual(alist.icon, "media-optical-cd-audio")
|
||||
self.assertEqual(alist.sort_order, [ "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(alist), 1)
|
||||
self.assertEqual(alist[0], track1)
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ class TestCollectionPlaylist(unittest.TestCase):
|
|||
self.assertIsInstance(plist, playlist.Playlist)
|
||||
self.assertEqual(plist.name, "Collection")
|
||||
self.assertEqual(plist.icon, "media-playback-start")
|
||||
self.assertEqual(plist.sort_order, [ "artist", "date", "album", "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(plist), 0)
|
||||
|
||||
track1 = tags.Track.lookup(os.path.join(test_album, "01 - Test Track.ogg"))
|
||||
|
|
|
@ -28,6 +28,7 @@ class TestDecadePlaylist(unittest.TestCase):
|
|||
plist = dnode.nth_child(0)
|
||||
self.assertEqual(plist.name, "1970s")
|
||||
self.assertEqual(plist.icon, "x-office-calendar")
|
||||
self.assertEqual(plist.sort_order, [ "date", "artist", "album", "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(plist), 1)
|
||||
self.assertEqual(plist[0], track1)
|
||||
|
||||
|
@ -35,6 +36,7 @@ class TestDecadePlaylist(unittest.TestCase):
|
|||
ylist = plist.nth_child(0)
|
||||
self.assertEqual(ylist.name, "1973")
|
||||
self.assertEqual(ylist.icon, "x-office-calendar")
|
||||
self.assertEqual(ylist.sort_order, [ "artist", "album", "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(ylist), 1)
|
||||
self.assertEqual(ylist[0], track1)
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ class TestGenrePlaylist(unittest.TestCase):
|
|||
plist = gnode.nth_child(0)
|
||||
self.assertEqual(plist.name, "Test Genre 1")
|
||||
self.assertEqual(plist.icon, "emblem-generic")
|
||||
self.assertEqual(plist.sort_order, [ "artist", "year", "album", "discnumber", "tracknumber" ])
|
||||
self.assertEqual(len(plist), 1)
|
||||
self.assertEqual(plist[0], track1)
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ class TestLibraryPlaylist(unittest.TestCase):
|
|||
self.assertIsInstance(plist, playlist.Playlist)
|
||||
self.assertEqual(plist.name, test_library)
|
||||
self.assertEqual(plist.icon, "folder-music")
|
||||
self.assertEqual(plist.sort_order, [ "artist", "year", "album", "discnumber", "tracknumber" ])
|
||||
|
||||
def test_playlist_library_scan(self):
|
||||
plist = library.LibraryPlaylist(test_library)
|
||||
|
|
|
@ -42,6 +42,10 @@ class TestPreviousPlaylist(unittest.TestCase):
|
|||
self.assertFalse(plist.set_random(True))
|
||||
self.assertFalse(plist.random)
|
||||
|
||||
self.assertEqual(plist.sort_order, [ ])
|
||||
self.assertFalse(plist.sort("date"))
|
||||
self.assertEqual(plist.sort_order, [ ])
|
||||
|
||||
track1 = tags.Track.lookup(os.path.join(test_album, "01 - Test Track 01.ogg"))
|
||||
track2 = tags.Track.lookup(os.path.join(test_album, "02 - Test Track 02.ogg"))
|
||||
track3 = tags.Track.lookup(os.path.join(test_album, "03 - Test Track 03.ogg"))
|
||||
|
|
Loading…
Reference in New Issue
Block a user