curds: Send a "playlist-changed" notification

The playlist manager doesn't need all the information about what changed
in the playlist, since it's mostly just updating the track count. Let's
just send the playlist so it won't get queued multiple times.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-04-04 09:21:15 -04:00
parent 4b1ef863b8
commit b5c15598bc
2 changed files with 18 additions and 9 deletions

View File

@ -41,6 +41,7 @@ class Playlist():
if track is not None and track not in self:
self.list.append(track)
notify.notify("add-track", self, track, self.list.index(track))
notify.notify("playlist-changed", self)
def next(self):
max = len(self) - 1

View File

@ -12,18 +12,24 @@ class TestPlaylist(unittest.TestCase):
def setUp(self):
tags.clear()
notify.register("add-track", self.on_add)
self.cb_plist = None
self.cb_track = None
self.cb_index = None
notify.register("playlist-changed", self.on_plist_changed)
self.cb_plist = None
self.cb_track = None
self.cb_index = None
self.cb_changed = None
def tearDown(self):
notify.cancel("add-track", self.on_add)
notify.cancel("playlist-changed", self.on_plist_changed)
def on_add(self, plist, track, index):
self.cb_plist = plist
self.cb_track = track
self.cb_index = index
def on_plist_changed(self, plist):
self.cb_changed = plist
def test_playlist_init(self):
plist = playlist.Playlist("Test Playlist")
self.assertEqual(plist.name, "Test Playlist")
@ -92,13 +98,15 @@ class TestPlaylist(unittest.TestCase):
plist = playlist.Playlist("Test Playlist")
plist.add(track)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track)
self.assertEqual(self.cb_index, 0)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track)
self.assertEqual(self.cb_index, 0)
self.assertEqual(self.cb_changed, plist)
plist.add(None)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track)
self.assertEqual(self.cb_index, 0)
self.assertEqual(self.cb_plist, plist)
self.assertEqual(self.cb_track, track)
self.assertEqual(self.cb_index, 0)
self.assertEqual(self.cb_changed, plist)
def test_playlist_next(self):
path = os.path.join(test_library, "Test Artist 01", "Test Album 1")