Index: src/PlaylistView.cs
===================================================================
RCS file: /cvs/gnome/banshee/src/PlaylistView.cs,v
retrieving revision 1.47
diff -u -p -r1.47 PlaylistView.cs
--- src/PlaylistView.cs	14 Apr 2006 15:33:43 -0000	1.47
+++ src/PlaylistView.cs	16 Apr 2006 18:11:39 -0000
@@ -58,6 +58,7 @@ namespace Banshee
             Title,
             Album,
             Genre,
+            Year,
             Time,
             Rating,
             PlayCount,
@@ -97,28 +98,31 @@ namespace Banshee
             columns.Add(new PlaylistColumn(this, Catalog.GetString("Genre"), "Genre", 
                 new TreeCellDataFunc(TrackCellGenre), new CellRendererText(),
                 4, (int)ColumnId.Genre));
-            columns.Add(new PlaylistColumn(this, Catalog.GetString("Time"), "Time", 
+            columns.Add(new PlaylistColumn(this, Catalog.GetString("Year"), "Year", 
+                new TreeCellDataFunc(TrackCellYear), new CellRendererText(),
+                5, (int)ColumnId.Year));
+           	columns.Add(new PlaylistColumn(this, Catalog.GetString("Time"), "Time", 
                 new TreeCellDataFunc(TrackCellTime), new CellRendererText(),
-                5, (int)ColumnId.Time));
+                6, (int)ColumnId.Time));
             
             RatingColumn = new PlaylistColumn(this, 
                 Catalog.GetString("Rating"), "Rating",
                 new TreeCellDataFunc(TrackCellRating), new RatingRenderer(),
-                6, (int)ColumnId.Rating);
+                7, (int)ColumnId.Rating);
             columns.Add(RatingColumn);
             
             PlaysColumn = new PlaylistColumn(this, 
                 Catalog.GetString("Plays"), "Plays",
                 new TreeCellDataFunc(TrackCellPlayCount), 
                 new CellRendererText(),
-                7, (int)ColumnId.PlayCount);
+                8, (int)ColumnId.PlayCount);
             columns.Add(PlaysColumn);
             
             LastPlayedColumn = new PlaylistColumn(this, 
                 Catalog.GetString("Last Played"), "Last-Played",
                 new TreeCellDataFunc(TrackCellLastPlayed), 
                 new CellRendererText(),
-                8, (int)ColumnId.LastPlayed);
+                9, (int)ColumnId.LastPlayed);
             columns.Add(LastPlayedColumn);
             
             foreach(PlaylistColumn plcol in columns) {
@@ -184,6 +188,8 @@ namespace Banshee
                 new TreeIterCompareFunc(AlbumTreeIterCompareFunc));
             model.SetSortFunc((int)ColumnId.Genre, 
                 new TreeIterCompareFunc(GenreTreeIterCompareFunc));
+            model.SetSortFunc((int)ColumnId.Year, 
+                new TreeIterCompareFunc(YearTreeIterCompareFunc));
             model.SetSortFunc((int)ColumnId.Time, 
                 new TreeIterCompareFunc(TimeTreeIterCompareFunc));
             model.SetSortFunc((int)ColumnId.Rating, 
@@ -269,6 +275,13 @@ namespace Banshee
                 model.IterTrackInfo(b).Genre);
         }
         
+        public int YearTreeIterCompareFunc(TreeModel _model, TreeIter a,
+            TreeIter b)
+        {
+            return LongFieldCompare(model.IterTrackInfo(a).Year, 
+                model.IterTrackInfo(b).Year);
+        }
+        
         public int TimeTreeIterCompareFunc(TreeModel _model, TreeIter a,
             TreeIter b)
         {
@@ -455,6 +468,18 @@ namespace Banshee
             }
             
             SetRendererAttributes((CellRendererText)cell, ti.Genre, iter);
+        }
+        
+        protected void TrackCellYear(TreeViewColumn tree_column,
+            CellRenderer cell, TreeModel tree_model, TreeIter iter)
+        {
+            TrackInfo ti = model.IterTrackInfo(iter);
+            if(ti == null) {
+                return;
+            }
+            
+            int year = ti.Year;
+            SetRendererAttributes((CellRendererText)cell, year > 0 ? Convert.ToString(year) : String.Empty, iter);
         }
         
         protected void TrackCellTime(TreeViewColumn tree_column,
Index: data/banshee.schemas.in
===================================================================
RCS file: /cvs/gnome/banshee/data/banshee.schemas.in,v
retrieving revision 1.16
diff -u -p -r1.16 banshee.schemas.in
--- data/banshee.schemas.in	17 Mar 2006 00:53:46 -0000	1.16
+++ data/banshee.schemas.in	16 Apr 2006 18:11:40 -0000
@@ -277,6 +277,28 @@
       </locale>
     </schema>
     <schema>
+      <key>/schemas/apps/Banshee/PlaylistColumns/Year/Width</key>
+      <applyto>/apps/Banshee/PlaylistColumns/Year/Width</applyto>
+      <owner>banshee</owner>
+      <type>int</type>
+      <default>45</default>
+      <locale name="C">
+        <short>Width of Year Column.</short>
+        <long>Width of Year Column.</long>
+      </locale>
+    </schema>
+    <schema>
+      <key>/schemas/apps/Banshee/PlaylistColumns/Year/Visible</key>
+      <applyto>/apps/Banshee/PlaylistColumns/Year/Visible</applyto>
+      <owner>banshee</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Visibility of Year Column.</short>
+        <long>Visibility of Year Column.</long>
+      </locale>
+    </schema>
+    <schema>
       <key>/schemas/apps/Banshee/Volume</key>
       <applyto>/apps/Banshee/Volume</applyto>
       <owner>banshee</owner>
