playlist: Add a "Add to Playlist" button to the Controls
And display the new popover when pressed Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
7b53536b27
commit
f91334dab1
|
@ -1,5 +1,6 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import filter
|
||||
from . import popover
|
||||
from gi.repository import Gtk
|
||||
import trackdb
|
||||
|
||||
|
@ -27,10 +28,19 @@ class Controls(Gtk.Box):
|
|||
self.loop.set_sensitive(False)
|
||||
self.append(self.loop)
|
||||
|
||||
self.add_popover = popover.AddPopover()
|
||||
|
||||
self.add = Gtk.MenuButton()
|
||||
self.add.set_icon_name("list-add")
|
||||
self.add.set_popover(self.add_popover)
|
||||
self.add.set_sensitive(False)
|
||||
self.append(self.add)
|
||||
|
||||
self.add_css_class("linked")
|
||||
|
||||
def set_tag(self, tag):
|
||||
self.tag = tag
|
||||
self.add.set_sensitive(tag is not None)
|
||||
|
||||
self.random.set_sensitive(tag.can_random())
|
||||
self.random.set_active(tag.random)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import controls
|
||||
from . import filter
|
||||
from . import popover
|
||||
from gi.repository import Gtk
|
||||
import trackdb
|
||||
import unittest
|
||||
|
@ -13,10 +14,14 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertIsInstance(ctrl.search, Gtk.SearchEntry)
|
||||
self.assertIsInstance(ctrl.random, Gtk.ToggleButton)
|
||||
self.assertIsInstance(ctrl.loop, Gtk.ToggleButton)
|
||||
self.assertIsInstance(ctrl.add_popover, popover.AddPopover)
|
||||
self.assertIsInstance(ctrl.add, Gtk.MenuButton)
|
||||
self.assertIsInstance(ctrl.filter, filter.Filter)
|
||||
|
||||
self.assertEqual(ctrl.random.get_icon_name(), "media-playlist-shuffle")
|
||||
self.assertEqual(ctrl.loop.get_icon_name(), "media-playlist-repeat")
|
||||
self.assertEqual(ctrl.add.get_icon_name(), "list-add")
|
||||
self.assertEqual(ctrl.add.get_popover(), ctrl.add_popover)
|
||||
self.assertEqual(ctrl.search.get_property("placeholder-text"),
|
||||
"Type to filter tracks")
|
||||
|
||||
|
@ -26,6 +31,7 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertIn(ctrl.search, ctrl)
|
||||
self.assertIn(ctrl.random, ctrl)
|
||||
self.assertIn(ctrl.loop, ctrl)
|
||||
self.assertIn(ctrl.add, ctrl)
|
||||
|
||||
def test_playlist_controls_set_tag(self):
|
||||
ctrl = controls.Controls()
|
||||
|
@ -37,6 +43,7 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertFalse(ctrl.random.get_active())
|
||||
self.assertFalse(ctrl.loop.get_sensitive())
|
||||
self.assertFalse(ctrl.loop.get_active())
|
||||
self.assertFalse(ctrl.add.get_sensitive())
|
||||
|
||||
fav.random = True
|
||||
fav.loop = True
|
||||
|
@ -46,6 +53,7 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertTrue(ctrl.random.get_active())
|
||||
self.assertTrue(ctrl.loop.get_sensitive())
|
||||
self.assertTrue(ctrl.loop.get_active())
|
||||
self.assertTrue(ctrl.add.get_sensitive())
|
||||
|
||||
ctrl.set_tag(prev)
|
||||
self.assertEqual(ctrl.tag, prev)
|
||||
|
@ -53,3 +61,4 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertFalse(ctrl.random.get_active())
|
||||
self.assertFalse(ctrl.loop.get_sensitive())
|
||||
self.assertFalse(ctrl.loop.get_active())
|
||||
self.assertTrue(ctrl.add.get_sensitive())
|
||||
|
|
Loading…
Reference in New Issue