pulser: Add a progress bar to the UI window

The intention is to pulse it whenever a background thread is running. I
also add a horizontal separator to show that this is a separate area

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-06-18 11:28:36 -04:00
parent 9339ce22bb
commit 5556ed163c
4 changed files with 33 additions and 2 deletions

8
ui/pulser.py Normal file
View File

@ -0,0 +1,8 @@
# Copyright 2021 (c) Anna Schumaker.
from gi.repository import Gtk
Bar = Gtk.ProgressBar()
Bar.set_valign(Gtk.Align.CENTER)
Bar.set_margin_start(10)
Bar.set_margin_end(10)

12
ui/test_pulser.py Normal file
View File

@ -0,0 +1,12 @@
# Copyright 2021 (c) Anna Schumaker.
from . import pulser
from gi.repository import Gtk
import unittest
class TestUIPulser(unittest.TestCase):
def test_pulser_init(self):
self.assertIsInstance(pulser.Bar, Gtk.ProgressBar)
self.assertEqual(pulser.Bar.get_valign(), Gtk.Align.CENTER)
self.assertEqual(pulser.Bar.get_margin_start(), 10)
self.assertEqual(pulser.Bar.get_margin_end(), 10)

View File

@ -4,6 +4,7 @@ from lib import version
from . import window
from . import header
from . import pane
from . import pulser
from gi.repository import Gtk
import unittest
@ -19,10 +20,15 @@ class TestUIWindow(unittest.TestCase):
def test_window_init(self):
self.assertIsInstance(window.Window, Gtk.ApplicationWindow)
self.assertIsInstance(window.Grid, Gtk.Grid)
self.assertIsInstance(window.Sep, Gtk.Separator)
self.assertTrue(window.Grid.get_column_homogeneous())
self.assertIn(pane.Pane, window.Grid)
self.assertIn(pulser.Bar, window.Grid)
self.assertIn(window.Sep, window.Grid)
self.assertEqual(window.Window.get_titlebar(), header.Header)
self.assertEqual(window.Window.get_child(), window.Grid)
self.assertIn(pane.Pane, window.Grid)
window.Window.present()
self.assertEqual(window.Window.get_title(), version.string())

View File

@ -6,9 +6,11 @@ gi.require_version("Gtk", "4.0")
from gi.repository import Gtk
from . import header
from . import pane
from . import pulser
Window = Gtk.ApplicationWindow()
Grid = Gtk.Grid()
Sep = Gtk.Separator.new(Gtk.Orientation.HORIZONTAL)
def initialize():
settings.initialize("window.width", 1100)
@ -16,7 +18,10 @@ def initialize():
settings.initialize("window.maximized", False)
initialize()
Grid.attach(pane.Pane, 0, 0, 4, 1)
Grid.set_column_homogeneous(True)
Grid.attach(pane.Pane, 0, 0, 4, 1)
Grid.attach(Sep, 0, 1, 4, 1)
Grid.attach(pulser.Bar, 0, 2, 1, 1)
Window.set_title(version.string())
Window.set_icon_name("emmental")