diff --git a/emmental/sidebar/__init__.py b/emmental/sidebar/__init__.py index f9781c1..e0913d8 100644 --- a/emmental/sidebar/__init__.py +++ b/emmental/sidebar/__init__.py @@ -23,7 +23,8 @@ class Card(Gtk.Box): """Set up the Sidebar widget.""" super().__init__(sql=sql, orientation=Gtk.Orientation.VERTICAL, 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._artists = artist.Section(self.sql.artists, self.sql.albums) self._genres = genre.Section(self.sql.genres) @@ -31,7 +32,8 @@ class Card(Gtk.Box): self._libraries = library.Section(self.sql.libraries) 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, self._decades, self._libraries]: @@ -46,6 +48,7 @@ class Card(Gtk.Box): self._filter.connect("search-changed", self.__search_changed) self.sql.connect("table-loaded", self.__table_loaded) + self._header.add_css_class("toolbar") self.add_css_class("card") def __search_changed(self, entry: entry.Filter) -> None: diff --git a/tests/sidebar/test_sidebar.py b/tests/sidebar/test_sidebar.py index 6041233..4a05619 100644 --- a/tests/sidebar/test_sidebar.py +++ b/tests/sidebar/test_sidebar.py @@ -25,13 +25,21 @@ class TestSidebar(tests.util.TestCase): 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): """Test the Sidebar filter entry.""" 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(), "type to filter playlists") + self.assertTrue(self.sidebar._filter.get_hexpand()) with unittest.mock.patch.object(self.sql, "filter") as mock_filter: self.sidebar._filter.set_text("test text") @@ -78,7 +86,7 @@ class TestSidebar(tests.util.TestCase): """Test that sidebar sections are in the View.""" self.assertIsInstance(self.sidebar._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.assertListEqual(self.sidebar._view._sections,