sidebar: Give the Header an activate() function

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2023-06-25 21:53:02 -04:00
parent 8dae0ed7bd
commit bc92e72265
2 changed files with 11 additions and 5 deletions

View File

@ -55,7 +55,7 @@ class Header(Gtk.Box):
self.bind_property("reveal-widget", self._revealer, "child")
self.bind_property("animation", self._revealer, "transition-type")
self._clicked.connect("released", self.__clicked)
self._clicked.connect("released", self.activate)
self.connect("notify::active", self.__notify_active)
self._box.append(self._icon)
@ -70,12 +70,12 @@ class Header(Gtk.Box):
self.append(self._overlay)
self.append(self._revealer)
def __clicked(self, gesture: Gtk.GestureClick, n_press: int,
x: int, y: int) -> None:
self.active = True
def __notify_active(self, header, param) -> None:
if self.active:
self._arrow.set_state_flags(Gtk.StateFlags.CHECKED, False)
else:
self._arrow.unset_state_flags(Gtk.StateFlags.CHECKED)
def activate(self, *args) -> None:
"""Activate the Header."""
self.active = True

View File

@ -165,3 +165,9 @@ class TestHeader(unittest.TestCase):
self.assertTrue(self.header.active)
flags = self.header._arrow.get_state_flags()
self.assertTrue(flags & Gtk.StateFlags.CHECKED)
def test_activate(self):
"""Test the activate() function."""
self.assertFalse(self.header.active)
self.header.activate()
self.assertTrue(self.header.active)