sidebar: Create a UserTagBox
With different icons for each type of user playlist Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
e6c936d51e
commit
ab515326c9
|
@ -1,6 +1,7 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import library
|
||||
from . import tagbox
|
||||
from . import user
|
||||
from lib import settings
|
||||
from gi.repository import Gtk
|
||||
import trackdb
|
||||
|
@ -42,7 +43,7 @@ def add_stack_page(name, page):
|
|||
Stack.add_named(page, name)
|
||||
toggle.set_active(settings.get("sidebar.page") == name)
|
||||
|
||||
add_stack_page("Playlists", tagbox.TagBox(trackdb.tags.User, "audio-x-generic"))
|
||||
add_stack_page("Playlists", user.TagBox)
|
||||
add_stack_page("Artists", tagbox.TagBox(trackdb.tags.Artist, "avatar-default-symbolic", header=True))
|
||||
add_stack_page("Genres", tagbox.TagBox(trackdb.tags.Genre, "emblem-generic", header=True))
|
||||
add_stack_page("Decades", tagbox.TagBox(trackdb.tags.Decade, "x-office-calendar"))
|
||||
|
|
32
sidebar/test_user.py
Normal file
32
sidebar/test_user.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import tagbox
|
||||
from . import user
|
||||
import trackdb
|
||||
import unittest
|
||||
|
||||
Expected = [ ("Collection", "media-playback-start"),
|
||||
("Favorites", "emblem-favorites"),
|
||||
("New Tracks", "starred"),
|
||||
("Previous", "edit-undo"),
|
||||
("Test", "audio-x-generic"),
|
||||
("Up Next", "edit-redo") ]
|
||||
|
||||
class TestUserSidebar(unittest.TestCase):
|
||||
def test_user_sidebar_init(self):
|
||||
self.assertIsInstance(user.TagBox, user.UserTagBox)
|
||||
self.assertIsInstance(user.TagBox, tagbox.TagBox)
|
||||
|
||||
self.assertEqual(user.Icons["Collection"], "media-playback-start")
|
||||
self.assertEqual(user.Icons["Favorites"], "emblem-favorites")
|
||||
self.assertEqual(user.Icons["New Tracks"], "starred")
|
||||
self.assertEqual(user.Icons["Previous"], "edit-undo")
|
||||
self.assertEqual(user.Icons["Up Next"], "edit-redo")
|
||||
|
||||
def test_user_sidebar(self):
|
||||
user.TagBox = user.UserTagBox(trackdb.tags.User, "audio-x-generic")
|
||||
tag = trackdb.tags.User.add("Test")
|
||||
user.TagBox.bus.complete()
|
||||
|
||||
for (i, (tag, icon)) in enumerate(Expected):
|
||||
self.assertEqual(user.TagBox[i].tag, trackdb.tags.User[tag])
|
||||
self.assertEqual(user.TagBox[i].image.get_icon_name(), icon)
|
18
sidebar/user.py
Normal file
18
sidebar/user.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import tagbox
|
||||
from . import tagrow
|
||||
import trackdb
|
||||
|
||||
Icons = { "Collection" : "media-playback-start",
|
||||
"Favorites" : "emblem-favorites",
|
||||
"New Tracks" : "starred",
|
||||
"Previous" : "edit-undo",
|
||||
"Up Next" : "edit-redo" }
|
||||
|
||||
|
||||
class UserTagBox(tagbox.TagBox):
|
||||
def __alloc_tagrow__(self, tag):
|
||||
return tagrow.TagRow(tag, Icons.get(tag.name, self.icon))
|
||||
|
||||
|
||||
TagBox = UserTagBox(trackdb.tags.User, "audio-x-generic")
|
|
@ -30,7 +30,7 @@ class TestSidebar(unittest.TestCase):
|
|||
self.assertTrue(toggle.get_vexpand())
|
||||
|
||||
self.assertIsInstance(sidebar.Stack.get_child_by_name("Playlists"),
|
||||
sidebar.tagbox.TagBox)
|
||||
sidebar.user.UserTagBox)
|
||||
self.assertEqual(sidebar.Toggles[0].get_icon_name(), "audio-x-generic")
|
||||
self.assertEqual(sidebar.Toggles[0].get_name(), "Playlists")
|
||||
sidebar.Toggles[0].set_active(True)
|
||||
|
|
Loading…
Reference in New Issue
Block a user