playlist: Create a FieldLabel label
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
768a3388d7
commit
5d4ad35131
|
@ -38,3 +38,34 @@ class DirectionButton(Gtk.Button):
|
|||
sort = "ascending" if direction == "ASC" else "descending"
|
||||
self.set_icon_name(f"view-sort-{sort}")
|
||||
self.set_sensitive(active)
|
||||
|
||||
|
||||
class FieldLabel(Gtk.Label):
|
||||
def __init__(self):
|
||||
Gtk.Label.__init__(self, sensitive=False, hexpand=True)
|
||||
|
||||
def set_field(self, field, active):
|
||||
self.set_sensitive(active)
|
||||
self.set_text({ "tracks.number" : "Track Number",
|
||||
"tracks.title" : "Track Title",
|
||||
"tracks.length" : "Track Length",
|
||||
"artists.sort" : "Artist Name",
|
||||
"albums.sort" : "Album Name",
|
||||
"discs.subtitle" : "Disc Subtitle",
|
||||
"albums.release" : "Release Date",
|
||||
"tracks.playcount" : "Play Count",
|
||||
"tracks.lastplayed" : "Last Played",
|
||||
"playlist_map.rowid" : "Order Added"}.get(field, field))
|
||||
|
||||
def get_field(self):
|
||||
text = self.get_text()
|
||||
return { "Track Number" : "tracks.number",
|
||||
"Track Title" : "tracks.title",
|
||||
"Track Length" : "tracks.length",
|
||||
"Artist Name" : "artists.sort",
|
||||
"Album Name" : "albums.sort",
|
||||
"Disc Subtitle" : "discs.subtitle",
|
||||
"Release Date" : "albums.release",
|
||||
"Play Count" : "tracks.playcount",
|
||||
"Last Played" : "tracks.lastplayed",
|
||||
"Order Added" : "playlist_map.rowid"}.get(text, text)
|
||||
|
|
|
@ -67,3 +67,63 @@ class TestDirectionButton(unittest.TestCase):
|
|||
button.set_direction("ASC", active=False)
|
||||
self.assertEqual(button.get_icon_name(), "view-sort-ascending")
|
||||
self.assertFalse(button.get_sensitive())
|
||||
|
||||
|
||||
class TestFieldLabel(unittest.TestCase):
|
||||
def test_init(self):
|
||||
label = sort.FieldLabel()
|
||||
self.assertIsInstance(label, Gtk.Label)
|
||||
self.assertFalse(label.get_sensitive())
|
||||
self.assertTrue(label.get_hexpand())
|
||||
|
||||
def test_set_field(self):
|
||||
label = sort.FieldLabel()
|
||||
label.set_field("tracks.number", active=True)
|
||||
self.assertEqual(label.get_text(), "Track Number")
|
||||
self.assertEqual(label.get_field(), "tracks.number")
|
||||
self.assertTrue(label.get_sensitive())
|
||||
|
||||
label.set_field("tracks.title", active=False),
|
||||
self.assertEqual(label.get_text(), "Track Title")
|
||||
self.assertEqual(label.get_field(), "tracks.title")
|
||||
self.assertFalse(label.get_sensitive())
|
||||
|
||||
label.set_field("tracks.length", active=True),
|
||||
self.assertEqual(label.get_text(), "Track Length")
|
||||
self.assertEqual(label.get_field(), "tracks.length")
|
||||
self.assertTrue(label.get_sensitive())
|
||||
|
||||
label.set_field("artists.sort", active=False),
|
||||
self.assertEqual(label.get_text(), "Artist Name")
|
||||
self.assertEqual(label.get_field(), "artists.sort")
|
||||
self.assertFalse(label.get_sensitive())
|
||||
|
||||
label.set_field("albums.sort", active=True),
|
||||
self.assertEqual(label.get_text(), "Album Name")
|
||||
self.assertEqual(label.get_field(), "albums.sort")
|
||||
self.assertTrue(label.get_sensitive())
|
||||
|
||||
label.set_field("discs.subtitle", active=False),
|
||||
self.assertEqual(label.get_text(), "Disc Subtitle")
|
||||
self.assertEqual(label.get_field(), "discs.subtitle")
|
||||
self.assertFalse(label.get_sensitive())
|
||||
|
||||
label.set_field("albums.release", active=True),
|
||||
self.assertEqual(label.get_text(), "Release Date")
|
||||
self.assertEqual(label.get_field(), "albums.release")
|
||||
self.assertTrue(label.get_sensitive())
|
||||
|
||||
label.set_field("tracks.playcount", active=False),
|
||||
self.assertEqual(label.get_text(), "Play Count")
|
||||
self.assertEqual(label.get_field(), "tracks.playcount")
|
||||
self.assertFalse(label.get_sensitive())
|
||||
|
||||
label.set_field("tracks.lastplayed", active=True)
|
||||
self.assertEqual(label.get_text(), "Last Played")
|
||||
self.assertEqual(label.get_field(), "tracks.lastplayed")
|
||||
self.assertTrue(label.get_sensitive())
|
||||
|
||||
label.set_field("playlist_map.rowid", active=False)
|
||||
self.assertEqual(label.get_text(), "Order Added")
|
||||
self.assertEqual(label.get_field(), "playlist_map.rowid")
|
||||
self.assertFalse(label.get_sensitive())
|
||||
|
|
Loading…
Reference in New Issue