curds: Replace playlist sort_key() with track_key()

Now we don't have to do an extra check for what key we're looking for.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-05-31 16:35:10 -04:00
parent 93098884b4
commit 27196c7069
2 changed files with 10 additions and 13 deletions

View File

@ -46,13 +46,13 @@ class Playlist(node.PlaylistNode):
self.track_added(index)
def bisect(self, track):
key = self.sort_key(track)
key = track.sort_key(self.sort_order)
begin = 0
end = len(self.list)
while end - begin > 0:
pos = (end + begin) // 2
cur = self.sort_key(self.list[pos])
cur = self.list[pos].sort_key(self.sort_order)
if cur == key:
return pos
elif key < cur:
@ -169,19 +169,17 @@ class Playlist(node.PlaylistNode):
self.sort_order.remove(field)
else:
self.sort_order.append(field)
self.list.sort(key=self.sort_key)
self.list.sort(key=self.track_key)
return field in self.sort_order
def sort_key(self, track=None):
if track == None:
return node.PlaylistNode.sort_key(self)
return track.sort_key(self.sort_order)
def track_added(self, index):
if self.visible == True:
notify.notify("add-track", self, index)
self.changed()
def track_key(self, track):
return track.sort_key(self.sort_order)
def track_removed(self, index):
if self.visible == True:
notify.notify("remove-track", self, index)

View File

@ -362,14 +362,13 @@ class TestPlaylist(unittest.TestCase):
self.assertFalse(self.plist.sort("artist"))
self.assertEqual(self.plist.sort_order, [ ])
def test_playlist_sort_key(self):
def test_playlist_track_key(self):
track = self.add_tracks([1])[0]
trackno = track["tracknumber"]
artist = track["artist"].lower().split()
self.assertEqual(self.plist.sort_key(), [ "test", "playlist" ])
self.assertEqual(self.plist.sort_key(track), [ ])
self.assertEqual(self.plist.track_key(track), [ ])
self.assertTrue( self.plist.sort("tracknumber"))
self.assertEqual(self.plist.sort_key(track), [ trackno ])
self.assertEqual(self.plist.track_key(track), [ trackno ])
self.assertTrue( self.plist.sort("artist"))
self.assertEqual(self.plist.sort_key(track), [ trackno, artist ])
self.assertEqual(self.plist.track_key(track), [ trackno, artist ])