sidebar: Create a FilterUserModel list model
With a custom filter that only displays playlists that users can add tracks to directly. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
43ec165a56
commit
b74f948acb
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
import db
|
||||
import lib
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Gio
|
||||
|
@ -50,3 +51,15 @@ class FilterTableModel(Gtk.FilterListModel):
|
|||
|
||||
def get_table(self):
|
||||
return self.get_model().get_model()
|
||||
|
||||
|
||||
class UserFilter(Gtk.Filter):
|
||||
def do_match(self, item):
|
||||
return item.name not in [ "Collection", "New Tracks", "Previous" ]
|
||||
|
||||
|
||||
class FilterUserModel(Gtk.FilterListModel):
|
||||
def __init__(self):
|
||||
Gtk.FilterListModel.__init__(self)
|
||||
self.set_model(db.user.Table)
|
||||
self.set_filter(UserFilter())
|
||||
|
|
|
@ -76,3 +76,20 @@ class TestFilterTableModel(unittest.TestCase):
|
|||
self.assertTrue(model.TableFilter.do_check(artist))
|
||||
model.TableFilter.set_pattern("Disc")
|
||||
self.assertFalse(model.TableFilter.do_check(artist))
|
||||
|
||||
|
||||
class TestFilterUserModel(unittest.TestCase):
|
||||
def test_init(self):
|
||||
filter = model.FilterUserModel()
|
||||
self.assertIsInstance(filter, Gtk.FilterListModel)
|
||||
self.assertIsInstance(filter.get_filter(), model.UserFilter)
|
||||
self.assertEqual(filter.get_model(), db.user.Table)
|
||||
|
||||
def test_filter(self):
|
||||
filter = model.UserFilter()
|
||||
self.assertFalse(filter.do_match(db.user.Table.find("Collection")))
|
||||
self.assertTrue(filter.do_match(db.user.Table.find("Favorites")))
|
||||
self.assertFalse(filter.do_match(db.user.Table.find("New Tracks")))
|
||||
self.assertFalse(filter.do_match(db.user.Table.find("Previous")))
|
||||
self.assertTrue(filter.do_match(db.user.Table.find("Queued Tracks")))
|
||||
self.assertTrue(filter.do_match(db.user.Table.find("Test Playlist")))
|
||||
|
|
Loading…
Reference in New Issue