sidebar: Change the currently displayed playlist
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
bbe48ccf82
commit
7f31e39779
|
@ -3,8 +3,17 @@ from gi.repository import Gtk
|
|||
from . import stack
|
||||
|
||||
class Sidebar(Gtk.Box):
|
||||
def __init__(self):
|
||||
def __init__(self, panel):
|
||||
Gtk.Box.__init__(self)
|
||||
self.panel = panel
|
||||
switcher = stack.Switcher()
|
||||
|
||||
self.append(switcher)
|
||||
self.append(stack.Box(switcher.get_stack()))
|
||||
|
||||
stak = switcher.get_stack()
|
||||
stak.connect("playlist-changed", self.playlist_changed)
|
||||
panel.set_playlist(stak.get_visible_child().get_selected_playlist())
|
||||
|
||||
def playlist_changed(self, stack, plist):
|
||||
self.panel.set_playlist(plist)
|
||||
|
|
|
@ -1,14 +1,30 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
import datetime
|
||||
import db
|
||||
import playlist
|
||||
import sidebar
|
||||
import unittest
|
||||
from gi.repository import Gtk
|
||||
|
||||
class TestSidebar(unittest.TestCase):
|
||||
def test_init(self):
|
||||
sbar = sidebar.Sidebar()
|
||||
panel = playlist.Panel()
|
||||
sbar = sidebar.Sidebar(panel)
|
||||
self.assertIsInstance(sbar, Gtk.Box)
|
||||
self.assertEqual(sbar.panel, panel)
|
||||
|
||||
child = sbar.get_first_child()
|
||||
self.assertIsInstance(child, sidebar.stack.Switcher)
|
||||
child = child.get_next_sibling()
|
||||
self.assertIsInstance(child, sidebar.stack.Box)
|
||||
|
||||
def test_change_playlist(self):
|
||||
artist = db.artist.Table.find("Test Artist", "Test Sort")
|
||||
album = artist.find_album("Test Album", datetime.date(2021, 3, 18))
|
||||
panel = playlist.Panel()
|
||||
sbar = sidebar.Sidebar(panel)
|
||||
|
||||
sbar.playlist_changed(None, artist)
|
||||
self.assertEqual(panel.get_playlist(), artist)
|
||||
sbar.playlist_changed(None, album)
|
||||
self.assertEqual(panel.get_playlist(), album)
|
||||
|
|
|
@ -7,10 +7,11 @@ from gi.repository import Gtk
|
|||
class Pane(Gtk.Paned):
|
||||
def __init__(self):
|
||||
Gtk.Paned.__init__(self)
|
||||
panel = playlist.Panel()
|
||||
|
||||
self.set_shrink_start_child(False)
|
||||
self.set_start_child(sidebar.Sidebar())
|
||||
self.set_end_child(playlist.Panel())
|
||||
self.set_start_child(sidebar.Sidebar(panel))
|
||||
self.set_end_child(panel)
|
||||
self.set_vexpand(True)
|
||||
|
||||
lib.settings.initialize("sidebar.width", 250)
|
||||
|
|
Loading…
Reference in New Issue