diff --git a/playlist/column.py b/playlist/column.py index ace26f0..e73c24f 100644 --- a/playlist/column.py +++ b/playlist/column.py @@ -63,6 +63,11 @@ class SubtitleFactory(LabelFactory): def get_track_text(self, track): return track.disc.subtitle +class YearFactory(LabelFactory): + def __init__(self): LabelFactory.__init__(self, xalign=1) + def get_track_text(self, track): return str(track.year.year) + + class Column(Gtk.ColumnViewColumn): def __init__(self, title, factory, width=-1, **kwargs): Gtk.ColumnViewColumn.__init__(self, title=title, **kwargs) @@ -83,6 +88,7 @@ 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) +def YearColumn(): return Column("Year", YearFactory()) class OldColumn(Gtk.ColumnViewColumn): diff --git a/playlist/test_column.py b/playlist/test_column.py index 6f45499..018e34b 100644 --- a/playlist/test_column.py +++ b/playlist/test_column.py @@ -82,6 +82,12 @@ class TestColumnFactories(unittest.TestCase): self.track.disc._subtitle = "Test Subtitle" self.assertEqual(factory.get_track_text(self.track), "Test Subtitle") + def test_year(self): + factory = column.YearFactory() + self.assertIsInstance(factory, column.LabelFactory) + self.assertEqual(factory.get_track_text(self.track), "2021") + self.assertEqual(factory.xalign, 1) + class TestColumn(unittest.TestCase): def test_init(self): @@ -154,6 +160,12 @@ class TestColumns(unittest.TestCase): self.assertEqual(col.get_fixed_width(), 150) self.assertTrue(col.get_expand()) + def test_year(self): + col = column.YearColumn() + self.assertIsInstance(col, column.Column) + self.assertIsInstance(col.get_factory(), column.YearFactory) + self.assertEqual(col.get_title(), "Year") + class TestPlaylistColumn(unittest.TestCase): def tearDown(self): diff --git a/playlist/view.py b/playlist/view.py index 4a971b9..0f3e09e 100644 --- a/playlist/view.py +++ b/playlist/view.py @@ -18,6 +18,7 @@ class PlaylistView(Gtk.ColumnView): self.append_column(column.ArtistColumn()) self.append_column(column.AlbumColumn()) self.append_column(column.SubtitleColumn()) + self.append_column(column.YearColumn()) def get_filter_model(self): return self.get_model().get_filter_model() def get_playlist(self): return self.get_model().get_playlist()