playlist: Add a button for scrolling to the current track
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
1d45ce9beb
commit
d3c66d7c31
|
@ -55,10 +55,15 @@ def scroll_to_track(track):
|
|||
adj.set_value(pos * adj.get_upper())
|
||||
return
|
||||
|
||||
def scroll_to_current(*args):
|
||||
scroll_to_track(audio.Player.track)
|
||||
Model.Controls.jump.connect("clicked", scroll_to_current)
|
||||
|
||||
def on_tracks_changed(prev, new):
|
||||
scroll_to_track(new)
|
||||
audio.Player.TrackChanged.register(on_tracks_changed)
|
||||
|
||||
|
||||
Box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
|
||||
Box.append(Model.Controls)
|
||||
Box.append(Scroll)
|
||||
|
|
|
@ -28,6 +28,10 @@ class Controls(Gtk.Box):
|
|||
self.loop.set_sensitive(False)
|
||||
self.append(self.loop)
|
||||
|
||||
self.jump = Gtk.Button.new_from_icon_name("go-jump")
|
||||
self.jump.set_sensitive(False)
|
||||
self.append(self.jump)
|
||||
|
||||
self.add_popover = popover.AddPopover()
|
||||
|
||||
self.add = Gtk.MenuButton()
|
||||
|
@ -41,6 +45,7 @@ class Controls(Gtk.Box):
|
|||
def set_tag(self, tag):
|
||||
self.tag = tag
|
||||
self.add.set_sensitive(tag is not None)
|
||||
self.jump.set_sensitive(tag is not None)
|
||||
|
||||
self.random.set_sensitive(tag.can_random())
|
||||
self.random.set_active(tag.random)
|
||||
|
|
|
@ -14,12 +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.jump, Gtk.Button)
|
||||
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.jump.get_icon_name(), "go-jump")
|
||||
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"),
|
||||
|
@ -31,6 +33,7 @@ class TestPlaylistControls(unittest.TestCase):
|
|||
self.assertIn(ctrl.search, ctrl)
|
||||
self.assertIn(ctrl.random, ctrl)
|
||||
self.assertIn(ctrl.loop, ctrl)
|
||||
self.assertIn(ctrl.jump, ctrl)
|
||||
self.assertIn(ctrl.add, ctrl)
|
||||
|
||||
def test_playlist_controls_set_tag(self):
|
||||
|
@ -43,6 +46,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.jump.get_sensitive())
|
||||
self.assertFalse(ctrl.add.get_sensitive())
|
||||
|
||||
fav.random = True
|
||||
|
@ -53,6 +57,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.jump.get_sensitive())
|
||||
self.assertTrue(ctrl.add.get_sensitive())
|
||||
|
||||
ctrl.set_tag(prev)
|
||||
|
@ -61,4 +66,5 @@ 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.jump.get_sensitive())
|
||||
self.assertTrue(ctrl.add.get_sensitive())
|
||||
|
|
Loading…
Reference in New Issue