sidebar: Save the current page
And initialize to the Library page to make adding that first directory easier for the user. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
a00701e722
commit
85b5c964a6
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from lib import settings
|
||||
from gi.repository import Gtk
|
||||
|
||||
Switcher = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)
|
||||
|
@ -15,9 +16,14 @@ Switcher.add_css_class("linked")
|
|||
Switcher.add_css_class("large-icons")
|
||||
Stack.set_transition_type(Gtk.StackTransitionType.OVER_UP_DOWN)
|
||||
|
||||
def initialize():
|
||||
settings.initialize("sidebar.page", "Libraries")
|
||||
initialize()
|
||||
|
||||
def switch_page(toggle):
|
||||
if toggle.get_active():
|
||||
Stack.set_visible_child_name(toggle.get_name())
|
||||
settings.set("sidebar.page", toggle.get_name())
|
||||
|
||||
def add_stack_page(page, name, icon):
|
||||
toggle = Gtk.ToggleButton()
|
||||
|
@ -31,6 +37,7 @@ def add_stack_page(page, name, icon):
|
|||
Toggles.append(toggle)
|
||||
Switcher.append(toggle)
|
||||
Stack.add_named(page, name)
|
||||
toggle.set_active(settings.get("sidebar.page") == name)
|
||||
|
||||
add_stack_page(Gtk.Label.new(str="Playlists"), "Playlists", "audio-x-generic")
|
||||
add_stack_page(Gtk.Label.new(str="Artists"), "Artists", "avatar-default-symbolic")
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from lib import settings
|
||||
import sidebar
|
||||
import unittest
|
||||
from gi.repository import Gtk
|
||||
|
||||
class TestSidebar(unittest.TestCase):
|
||||
def setUpClass():
|
||||
sidebar.initialize()
|
||||
|
||||
def test_sidebar_init(self):
|
||||
self.assertIsInstance(sidebar.Switcher, Gtk.Box)
|
||||
self.assertIsInstance(sidebar.Stack, Gtk.Stack)
|
||||
|
@ -17,6 +21,8 @@ class TestSidebar(unittest.TestCase):
|
|||
self.assertTrue(sidebar.Switcher.has_css_class("linked"))
|
||||
self.assertTrue(sidebar.Switcher.has_css_class("large-icons"))
|
||||
self.assertEqual(sidebar.Stack.get_transition_type(), Gtk.StackTransitionType.OVER_UP_DOWN)
|
||||
self.assertEqual(settings.get("sidebar.page"), "Libraries")
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Libraries")
|
||||
|
||||
for toggle in sidebar.Toggles:
|
||||
self.assertIsInstance(toggle, Gtk.ToggleButton)
|
||||
|
@ -28,30 +34,35 @@ class TestSidebar(unittest.TestCase):
|
|||
self.assertEqual(sidebar.Toggles[0].get_name(), "Playlists")
|
||||
sidebar.Toggles[0].set_active(True)
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Playlists")
|
||||
self.assertEqual(settings.get("sidebar.page"), "Playlists")
|
||||
|
||||
self.assertIsNotNone(sidebar.Stack.get_child_by_name("Artists"))
|
||||
self.assertEqual(sidebar.Toggles[1].get_icon_name(), "avatar-default-symbolic")
|
||||
self.assertEqual(sidebar.Toggles[1].get_name(), "Artists")
|
||||
sidebar.Toggles[1].set_active(True)
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Artists")
|
||||
self.assertEqual(settings.get("sidebar.page"), "Artists")
|
||||
|
||||
self.assertIsNotNone(sidebar.Stack.get_child_by_name("Genres"))
|
||||
self.assertEqual(sidebar.Toggles[2].get_icon_name(), "emblem-generic")
|
||||
self.assertEqual(sidebar.Toggles[2].get_name(), "Genres")
|
||||
sidebar.Toggles[2].set_active(True)
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Genres")
|
||||
self.assertEqual(settings.get("sidebar.page"), "Genres")
|
||||
|
||||
self.assertIsNotNone(sidebar.Stack.get_child_by_name("Decades"))
|
||||
self.assertEqual(sidebar.Toggles[3].get_icon_name(), "x-office-calendar")
|
||||
self.assertEqual(sidebar.Toggles[3].get_name(), "Decades")
|
||||
sidebar.Toggles[3].set_active(True)
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Decades")
|
||||
self.assertEqual(settings.get("sidebar.page"), "Decades")
|
||||
|
||||
self.assertIsNotNone(sidebar.Stack.get_child_by_name("Libraries"))
|
||||
self.assertEqual(sidebar.Toggles[4].get_icon_name(), "folder-music")
|
||||
self.assertEqual(sidebar.Toggles[4].get_name(), "Libraries")
|
||||
sidebar.Toggles[4].set_active(True)
|
||||
self.assertEqual(sidebar.Stack.get_visible_child_name(), "Libraries")
|
||||
self.assertEqual(settings.get("sidebar.page"), "Libraries")
|
||||
|
||||
for toggle in sidebar.Toggles:
|
||||
if toggle != sidebar.Toggles[-1]:
|
||||
|
|
Loading…
Reference in New Issue