diff --git a/db/library.py b/db/library.py index 9b0d15d..c9a5126 100644 --- a/db/library.py +++ b/db/library.py @@ -9,6 +9,7 @@ from gi.repository import GObject from . import sql from . import playlist from . import track +from . import user class Library(playlist.Playlist): def __init__(self, row): @@ -31,6 +32,7 @@ class Library(playlist.Playlist): [ newval, self.rowid ]) sql.commit() self._enabled = newval + user.Table.find("Collection").refresh() def delete(self): Table.delete(self) diff --git a/db/playlist.py b/db/playlist.py index 560d460..c2d330f 100644 --- a/db/playlist.py +++ b/db/playlist.py @@ -51,6 +51,9 @@ class Playlist(GObject.GObject): def remove_track(self, track): self.emit("track-removed", track) + def refresh(self): + self.emit("refreshed") + @GObject.Property def name(self): raise NotImplementedError @@ -66,6 +69,9 @@ class Playlist(GObject.GObject): @GObject.Property def rowkey(self): return self._rowkey + @GObject.Signal + def refreshed(self): pass + @GObject.Signal(arg_types=(GObject.TYPE_PYOBJECT,)) def track_added(self, track): pass diff --git a/db/test_user.py b/db/test_user.py index d28da5e..196c8d3 100644 --- a/db/test_user.py +++ b/db/test_user.py @@ -12,6 +12,9 @@ class TestCollection(unittest.TestCase): def track_removed(self, plist, removed): self.removed = removed + def refreshed(self, plist): + self.refreshed = True + def setUp(self): db.reset() def test_init(self): @@ -39,10 +42,19 @@ class TestCollection(unittest.TestCase): def test_library_enabled(self): collection = db.user.Table.find("Collection") - track = db.make_fake_track(1, 1, "Test Track", "/a/b/c/1.ogg") - self.assertEqual(collection.get_n_tracks(), 1) - track.library.enabled = False + track1 = db.make_fake_track(1, 1, "Test Track 1", "/a/b/c/1.ogg") + track2 = db.make_fake_track(2, 2, "Test Track 2", "/a/b/c/2.ogg") + self.assertEqual(collection.get_n_tracks(), 2) + collection.connect("refreshed", self.refreshed) + + track1.library.enabled = False self.assertEqual(collection.get_n_tracks(), 0) + self.assertTrue(self.refreshed) + + self.refreshed = None + track1.library.enabled = True + self.assertEqual(collection.get_n_tracks(), 2) + self.assertTrue(self.refreshed) class TestFavorites(unittest.TestCase):