playlist: Create a PlaylistSelection list model
This is a multi-selection model so we can do operations on multiple tracks at once. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
f2402cdb44
commit
fc83b66fbe
|
@ -76,6 +76,16 @@ class FilterPlaylistModel(Gtk.FilterListModel):
|
|||
return sum([ int(self.get_item(i).length) for i in range(n) ])
|
||||
|
||||
|
||||
class PlaylistSelection(Gtk.MultiSelection):
|
||||
def __init__(self):
|
||||
Gtk.MultiSelection.__init__(self)
|
||||
self.set_model(FilterPlaylistModel())
|
||||
|
||||
def get_filter_model(self): return self.get_model()
|
||||
def get_playlist(self): return self.get_model().get_playlist()
|
||||
def set_playlist(self, plist): return self.get_model().set_playlist(plist)
|
||||
|
||||
|
||||
class TagModel(GObject.GObject, Gio.ListModel):
|
||||
def __init__(self, tag=None):
|
||||
GObject.GObject.__init__(self)
|
||||
|
|
|
@ -118,6 +118,15 @@ class TestFilterPlaylistModel(unittest.TestCase):
|
|||
self.assertEqual(filter.get_runtime(), 1)
|
||||
|
||||
|
||||
class TestPlaylistSelectionModel(unittest.TestCase):
|
||||
def test_init(self):
|
||||
selection = model.PlaylistSelection()
|
||||
self.assertIsInstance(selection, Gtk.MultiSelection)
|
||||
self.assertIsInstance(selection.get_model(), model.FilterPlaylistModel)
|
||||
self.assertEqual(selection.get_filter_model(), selection.get_model())
|
||||
self.assertIsNone(selection.get_playlist())
|
||||
|
||||
|
||||
class TestTagModel(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.changed = (None, None, None)
|
||||
|
|
Loading…
Reference in New Issue