header: Give the volume button public {inc,dec}rement() funcs

I made these functions part of the public interface with option
arguments so they can be used in accelerator callbacks for increasing or
decreasing the volume.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2023-06-04 10:26:57 -04:00
parent 397c693aef
commit 9cb927aabb
2 changed files with 16 additions and 4 deletions

View File

@ -41,17 +41,19 @@ class VolumeRow(Gtk.ListBoxRow):
self._box.append(self._increment)
self.set_child(self._box)
self._decrement.connect("clicked", self.__decrement)
self._decrement.connect("clicked", self.decrement)
self._scale.connect("value-changed", self.__value_changed)
self._increment.connect("clicked", self.__increment)
self._increment.connect("clicked", self.increment)
self.bind_property("volume", self._adjustment, "value",
GObject.BindingFlags.BIDIRECTIONAL)
def __decrement(self, button: Gtk.Button) -> None:
def decrement(self, button: Gtk.Button | None = None) -> None:
"""Decrease the volume by STEP_SIZE."""
self._scale.set_value(self._scale.get_value() - STEP_SIZE)
def __increment(self, button: Gtk.Button) -> None:
def increment(self, button: Gtk.Button | None = None) -> None:
"""Increase the volume by STEP_SIZE."""
self._scale.set_value(self._scale.get_value() + STEP_SIZE)
def __value_changed(self, range: Gtk.Range) -> None:

View File

@ -57,6 +57,11 @@ class TestVolumeRow(unittest.TestCase):
self.assertAlmostEqual(self.vol._scale.get_value(), 0.95)
self.assertAlmostEqual(self.value.value, 0.95)
self.vol.decrement()
self.assertAlmostEqual(self.vol.volume, 0.90)
self.assertAlmostEqual(self.vol._scale.get_value(), 0.90)
self.assertAlmostEqual(self.value.value, 0.90)
def test_scale(self):
"""Check that the volume slider has been set up properly."""
self.assertIsInstance(self.vol._adjustment, Gtk.Adjustment)
@ -103,6 +108,11 @@ class TestVolumeRow(unittest.TestCase):
self.assertAlmostEqual(self.vol._scale.get_value(), 0.95)
self.assertAlmostEqual(self.value.value, 0.95)
self.vol.increment()
self.assertAlmostEqual(self.vol.volume, 1.0)
self.assertAlmostEqual(self.vol._scale.get_value(), 1.0)
self.assertAlmostEqual(self.value.value, 1.0)
def test_format_value(self):
"""Check that the scale value is formatted correctly."""
format_value = emmental.header.volume.format_value_func