sidebar: Move the Filter into a Gtk.CenterBox
I'm going to add a button to jump to the current playlist, and the first step is to add an area to put it in the sidebar. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
7e99fd1ba0
commit
1707f87e45
|
@ -23,7 +23,8 @@ class Card(Gtk.Box):
|
||||||
"""Set up the Sidebar widget."""
|
"""Set up the Sidebar widget."""
|
||||||
super().__init__(sql=sql, orientation=Gtk.Orientation.VERTICAL,
|
super().__init__(sql=sql, orientation=Gtk.Orientation.VERTICAL,
|
||||||
sensitive=False, **kwargs)
|
sensitive=False, **kwargs)
|
||||||
self._filter = entry.Filter("playlists")
|
self._header = Gtk.CenterBox()
|
||||||
|
self._filter = entry.Filter("playlists", hexpand=True)
|
||||||
self._playlists = playlist.Section(self.sql.playlists)
|
self._playlists = playlist.Section(self.sql.playlists)
|
||||||
self._artists = artist.Section(self.sql.artists, self.sql.albums)
|
self._artists = artist.Section(self.sql.artists, self.sql.albums)
|
||||||
self._genres = genre.Section(self.sql.genres)
|
self._genres = genre.Section(self.sql.genres)
|
||||||
|
@ -31,7 +32,8 @@ class Card(Gtk.Box):
|
||||||
self._libraries = library.Section(self.sql.libraries)
|
self._libraries = library.Section(self.sql.libraries)
|
||||||
self._view = section.View(sql)
|
self._view = section.View(sql)
|
||||||
|
|
||||||
self.append(self._filter)
|
self._header.set_center_widget(self._filter)
|
||||||
|
self.append(self._header)
|
||||||
|
|
||||||
for sect in [self._playlists, self._artists, self._genres,
|
for sect in [self._playlists, self._artists, self._genres,
|
||||||
self._decades, self._libraries]:
|
self._decades, self._libraries]:
|
||||||
|
@ -46,6 +48,7 @@ class Card(Gtk.Box):
|
||||||
self._filter.connect("search-changed", self.__search_changed)
|
self._filter.connect("search-changed", self.__search_changed)
|
||||||
self.sql.connect("table-loaded", self.__table_loaded)
|
self.sql.connect("table-loaded", self.__table_loaded)
|
||||||
|
|
||||||
|
self._header.add_css_class("toolbar")
|
||||||
self.add_css_class("card")
|
self.add_css_class("card")
|
||||||
|
|
||||||
def __search_changed(self, entry: entry.Filter) -> None:
|
def __search_changed(self, entry: entry.Filter) -> None:
|
||||||
|
|
|
@ -25,13 +25,21 @@ class TestSidebar(tests.util.TestCase):
|
||||||
|
|
||||||
self.assertTrue(self.sidebar.has_css_class("card"))
|
self.assertTrue(self.sidebar.has_css_class("card"))
|
||||||
|
|
||||||
|
def test_header(self):
|
||||||
|
"""Test the Sidebar header."""
|
||||||
|
self.assertIsInstance(self.sidebar._header, Gtk.CenterBox)
|
||||||
|
self.assertEqual(self.sidebar.get_first_child(), self.sidebar._header)
|
||||||
|
self.assertTrue(self.sidebar._header.has_css_class("toolbar"))
|
||||||
|
|
||||||
def test_filter(self):
|
def test_filter(self):
|
||||||
"""Test the Sidebar filter entry."""
|
"""Test the Sidebar filter entry."""
|
||||||
self.assertIsInstance(self.sidebar._filter, emmental.entry.Filter)
|
self.assertIsInstance(self.sidebar._filter, emmental.entry.Filter)
|
||||||
|
|
||||||
self.assertEqual(self.sidebar.get_first_child(), self.sidebar._filter)
|
self.assertEqual(self.sidebar._header.get_center_widget(),
|
||||||
|
self.sidebar._filter)
|
||||||
self.assertEqual(self.sidebar._filter.get_placeholder_text(),
|
self.assertEqual(self.sidebar._filter.get_placeholder_text(),
|
||||||
"type to filter playlists")
|
"type to filter playlists")
|
||||||
|
self.assertTrue(self.sidebar._filter.get_hexpand())
|
||||||
|
|
||||||
with unittest.mock.patch.object(self.sql, "filter") as mock_filter:
|
with unittest.mock.patch.object(self.sql, "filter") as mock_filter:
|
||||||
self.sidebar._filter.set_text("test text")
|
self.sidebar._filter.set_text("test text")
|
||||||
|
@ -78,7 +86,7 @@ class TestSidebar(tests.util.TestCase):
|
||||||
"""Test that sidebar sections are in the View."""
|
"""Test that sidebar sections are in the View."""
|
||||||
self.assertIsInstance(self.sidebar._view,
|
self.assertIsInstance(self.sidebar._view,
|
||||||
emmental.sidebar.section.View)
|
emmental.sidebar.section.View)
|
||||||
self.assertEqual(self.sidebar._filter.get_next_sibling(),
|
self.assertEqual(self.sidebar._header.get_next_sibling(),
|
||||||
self.sidebar._view)
|
self.sidebar._view)
|
||||||
|
|
||||||
self.assertListEqual(self.sidebar._view._sections,
|
self.assertListEqual(self.sidebar._view._sections,
|
||||||
|
|
Loading…
Reference in New Issue