diff --git a/playlist/column.py b/playlist/column.py index c221ada..ace26f0 100644 --- a/playlist/column.py +++ b/playlist/column.py @@ -58,6 +58,11 @@ class AlbumFactory(LabelFactory): def get_track_text(self, track): return track.album.name +class SubtitleFactory(LabelFactory): + def __init__(self): LabelFactory.__init__(self, xalign=0) + def get_track_text(self, track): return track.disc.subtitle + + class Column(Gtk.ColumnViewColumn): def __init__(self, title, factory, width=-1, **kwargs): Gtk.ColumnViewColumn.__init__(self, title=title, **kwargs) @@ -77,6 +82,7 @@ def TitleColumn(): return Column("Title", TitleFactory(), width=250, expand=True def LengthColumn(): return Column("Length", LengthFactory()) def ArtistColumn(): return Column("Artist", ArtistFactory(), width=150, expand=True) def AlbumColumn(): return Column("Album", AlbumFactory(), width=150, expand=True) +def SubtitleColumn(): return Column("Subtitle", SubtitleFactory(), width=150, expand=True) class OldColumn(Gtk.ColumnViewColumn): diff --git a/playlist/test_column.py b/playlist/test_column.py index 5f16466..6f45499 100644 --- a/playlist/test_column.py +++ b/playlist/test_column.py @@ -75,6 +75,13 @@ class TestColumnFactories(unittest.TestCase): self.assertIsInstance(factory, column.LabelFactory) self.assertEqual(factory.get_track_text(self.track), "Test Album") + def test_subtitle(self): + factory = column.SubtitleFactory() + self.assertIsInstance(factory, column.LabelFactory) + self.assertEqual(factory.get_track_text(self.track), "") + self.track.disc._subtitle = "Test Subtitle" + self.assertEqual(factory.get_track_text(self.track), "Test Subtitle") + class TestColumn(unittest.TestCase): def test_init(self): @@ -139,6 +146,14 @@ class TestColumns(unittest.TestCase): self.assertEqual(col.get_fixed_width(), 150) self.assertTrue(col.get_expand()) + def test_subtitle(self): + col = column.SubtitleColumn() + self.assertIsInstance(col, column.Column) + self.assertIsInstance(col.get_factory(), column.SubtitleFactory) + self.assertEqual(col.get_title(), "Subtitle") + self.assertEqual(col.get_fixed_width(), 150) + self.assertTrue(col.get_expand()) + class TestPlaylistColumn(unittest.TestCase): def tearDown(self): diff --git a/playlist/view.py b/playlist/view.py index cfef44a..4a971b9 100644 --- a/playlist/view.py +++ b/playlist/view.py @@ -17,6 +17,7 @@ class PlaylistView(Gtk.ColumnView): self.append_column(column.LengthColumn()) self.append_column(column.ArtistColumn()) self.append_column(column.AlbumColumn()) + self.append_column(column.SubtitleColumn()) def get_filter_model(self): return self.get_model().get_filter_model() def get_playlist(self): return self.get_model().get_playlist()