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:
parent
93098884b4
commit
27196c7069
|
@ -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)
|
||||
|
|
|
@ -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 ])
|
||||
|
|
Loading…
Reference in New Issue
Block a user