sidebar: Create a UserGrid
This adds a button users can click to remove the playlists they create. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
d1d84af228
commit
0e7cb81476
|
@ -40,3 +40,26 @@ class Grid(Gtk.Grid):
|
|||
item.disconnect_by_func(self.set_count)
|
||||
item.disconnect_by_func(self.set_count)
|
||||
item.disconnect_by_func(self.set_count)
|
||||
|
||||
|
||||
class UserGrid(Grid):
|
||||
def __init__(self):
|
||||
Grid.__init__(self)
|
||||
self.remove = self.attach(Gtk.Button(), 2, 0, 1, 2)
|
||||
self.remove.set_icon_name("list-remove")
|
||||
self.remove.add_css_class("flat")
|
||||
self.remove.set_halign(Gtk.Align.CENTER)
|
||||
self.remove.set_valign(Gtk.Align.CENTER)
|
||||
|
||||
def set_item(self, item):
|
||||
system = [ "Collection", "Favorites", "New Tracks",
|
||||
"Previous", "Queued Tracks" ]
|
||||
super().set_item(item)
|
||||
self.remove.set_visible(item.name not in system)
|
||||
self.remove.connect("clicked", self.clicked, item)
|
||||
|
||||
def unset_item(self, item):
|
||||
self.remove.disconnect_by_func(self.clicked)
|
||||
|
||||
def clicked(self, button, item):
|
||||
item.delete()
|
||||
|
|
|
@ -60,3 +60,38 @@ class TestGrid(unittest.TestCase):
|
|||
db.track.Table.delete(track)
|
||||
artist.remove_track(track, False)
|
||||
self.assertEqual(grid.count.get_text(), "0 Tracks")
|
||||
|
||||
|
||||
class TestUserGrid(unittest.TestCase):
|
||||
def tearDown(self): db.reset()
|
||||
|
||||
def test_init(self):
|
||||
grid = row.UserGrid()
|
||||
self.assertIsInstance(grid, row.Grid)
|
||||
self.assertIsInstance(grid.remove, Gtk.Button)
|
||||
self.assertEqual(grid.get_child_at(2, 0), grid.remove)
|
||||
self.assertEqual(grid.remove.get_icon_name(), "list-remove")
|
||||
self.assertEqual(grid.remove.get_halign(), Gtk.Align.CENTER)
|
||||
self.assertEqual(grid.remove.get_valign(), Gtk.Align.CENTER)
|
||||
self.assertTrue(grid.remove.has_css_class("flat"))
|
||||
|
||||
def test_set_item(self):
|
||||
grid = row.UserGrid()
|
||||
grid.set_item(db.user.Table.find("Collection"))
|
||||
self.assertFalse(grid.remove.get_visible())
|
||||
grid.set_item(db.user.Table.find("Favorites"))
|
||||
self.assertFalse(grid.remove.get_visible())
|
||||
grid.set_item(db.user.Table.find("New Tracks"))
|
||||
self.assertFalse(grid.remove.get_visible())
|
||||
grid.set_item(db.user.Table.find("Previous"))
|
||||
self.assertFalse(grid.remove.get_visible())
|
||||
grid.set_item(db.user.Table.find("Queued Tracks"))
|
||||
self.assertFalse(grid.remove.get_visible())
|
||||
grid.set_item(db.user.Table.find("Test Playlist"))
|
||||
self.assertTrue(grid.remove.get_visible())
|
||||
|
||||
def test_click(self):
|
||||
grid = row.UserGrid()
|
||||
grid.set_item(db.user.Table.find("Test Playlist"))
|
||||
grid.remove.emit("clicked")
|
||||
self.assertIsNone(db.user.Table.lookup("Test Playlist"))
|
||||
|
|
Loading…
Reference in New Issue