banshee r3919 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Library src/Core/Banshee.ThickClient src/Core/Banshee.ThickClient/Banshee.Collection.Gui src/Core/Banshee.ThickClient/Banshee.Sources.Gui src/Libraries/Hyena.Gui/Hyena.Data.Gui



Author: abock
Date: Wed May 14 22:45:11 2008
New Revision: 3919
URL: http://svn.gnome.org/viewvc/banshee?rev=3919&view=rev

Log:
2008-05-14  Aaron Bockover  <abock gnome org>

    * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs: Defined
    a column controller for video sources

    * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs:
    Added the proper ctor

    * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs:
    Made the default column properties instance properties since they can
    now be modified and should not be global

    * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs:
    If a source has an XML column controller definition but not a column
    controller object, load the object from the XML and persist/use it

    * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs:
    A new column controller that extends the default controller and allows
    new columns to be fully defined, existing ones to be modified or removed

    * src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs: Allow SortKey
    to be set

    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs:
    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs:
    * src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs:
    Use a common cell layout data handler delegate



Added:
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp
   trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am
   trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs	Wed May 14 22:45:11 2008
@@ -41,6 +41,17 @@
         public VideoLibrarySource () : base (Catalog.GetString ("Video Library"), "VideoLibrary", 30)
         {
             Properties.SetStringList ("Icon.Name", "video-x-generic", "video", "source-library");
+            Properties.SetString ("TrackView.ColumnControllerXml", String.Format (@"
+                <column-controller>
+                  <add-all-defaults />
+                  <remove-default column=""DiscColumn"" />
+                  <remove-default column=""AlbumColumn"" />
+                  <remove-default column=""ComposerColumn"" />
+                  <column modify-default=""ArtistColumn"">
+                    <title>{0}</title>
+                  </column>
+                </column-controller>
+            ", Catalog.GetString ("Produced By")));
         }
 
         public override bool ShowBrowser {

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellPlaybackIndicator.cs	Wed May 14 22:45:11 2008
@@ -52,7 +52,11 @@
         private const int pixbuf_spacing = 4;        
         private Gdk.Pixbuf [] pixbufs = new Gdk.Pixbuf[4];
         
-        public ColumnCellPlaybackIndicator (string property) : base (property, true)
+        public ColumnCellPlaybackIndicator (string property) : this (property, true)
+        {
+        }
+        
+        public ColumnCellPlaybackIndicator (string property, bool expand) : base (property, expand)
         {
             LoadPixbufs ();
         }

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/DefaultColumnController.cs	Wed May 14 22:45:11 2008
@@ -80,107 +80,107 @@
             );
         }
         
-        private static Column indicator_column 
+        private Column indicator_column 
             = new Column (null, "indicator", new ColumnCellPlaybackIndicator (null), 0.05, true, 30, 30);
-        public static Column IndicatorColumn {
+        public Column IndicatorColumn {
             get { return indicator_column; }
         }
         
-        private static SortableColumn track_column = new SortableColumn (Catalog.GetString ("Track"), 
+        private SortableColumn track_column = new SortableColumn (Catalog.GetString ("Track"), 
             new ColumnCellTrackNumber ("TrackNumber", true), 0.10, "Track", true);
-        public static SortableColumn TrackColumn {
+        public SortableColumn TrackColumn {
             get { return track_column; }
         }
         
-        private static SortableColumn title_column = new SortableColumn (Catalog.GetString ("Title"), 
+        private SortableColumn title_column = new SortableColumn (Catalog.GetString ("Title"), 
             new ColumnCellText ("TrackTitle", true), 0.25, "Title", true);
-        public static SortableColumn TitleColumn {
+        public SortableColumn TitleColumn {
             get { return title_column; }
         }
         
-        private static SortableColumn artist_column = new SortableColumn (Catalog.GetString ("Artist"), 
+        private SortableColumn artist_column = new SortableColumn (Catalog.GetString ("Artist"), 
             new ColumnCellText ("ArtistName", true), 0.225, "Artist", true);
-        public static SortableColumn ArtistColumn {
+        public SortableColumn ArtistColumn {
             get { return artist_column; }
         }
         
-        private static SortableColumn album_column = new SortableColumn (Catalog.GetString ("Album"), 
+        private SortableColumn album_column = new SortableColumn (Catalog.GetString ("Album"), 
             new ColumnCellText ("AlbumTitle", true), 0.225, "Album", true);
-        public static SortableColumn AlbumColumn {
+        public SortableColumn AlbumColumn {
             get { return album_column; }
         }
         
-        private static SortableColumn duration_column = new SortableColumn (Catalog.GetString ("Duration"),
+        private SortableColumn duration_column = new SortableColumn (Catalog.GetString ("Duration"),
             new ColumnCellDuration ("Duration", true), 0.15, "Duration", true);
-        public static SortableColumn DurationColumn {
+        public SortableColumn DurationColumn {
             get { return duration_column; }
         }
         
-        private static SortableColumn genre_column = new SortableColumn (Catalog.GetString ("Genre"), 
+        private SortableColumn genre_column = new SortableColumn (Catalog.GetString ("Genre"), 
             new ColumnCellText ("Genre", true), 0.25, "Genre", false);
-        public static SortableColumn GenreColumn {
+        public SortableColumn GenreColumn {
             get { return genre_column; }
         }
         
-        private static SortableColumn year_column = new SortableColumn (Catalog.GetString ("Year"), 
+        private SortableColumn year_column = new SortableColumn (Catalog.GetString ("Year"), 
             new ColumnCellPositiveInt ("Year", true), 0.15, "Year", false);
-        public static SortableColumn YearColumn {
+        public SortableColumn YearColumn {
             get { return year_column; }
         }
         
-        private static SortableColumn composer_column = new SortableColumn (Catalog.GetString ("Composer"), 
+        private SortableColumn composer_column = new SortableColumn (Catalog.GetString ("Composer"), 
             new ColumnCellText ("Composer", true), 0.25, "Composer", false);
-        public static SortableColumn ComposerColumn {
+        public SortableColumn ComposerColumn {
             get { return composer_column; }
         }
         
-        private static SortableColumn play_count_column = new SortableColumn (Catalog.GetString ("Play Count"), 
+        private SortableColumn play_count_column = new SortableColumn (Catalog.GetString ("Play Count"), 
             new ColumnCellText ("PlayCount", true), 0.15, "PlayCount", false);
-        public static SortableColumn PlayCountColumn {
+        public SortableColumn PlayCountColumn {
             get { return play_count_column; }
         }
         
-        private static SortableColumn skip_count_column = new SortableColumn (Catalog.GetString ("Skip Count"), 
+        private SortableColumn skip_count_column = new SortableColumn (Catalog.GetString ("Skip Count"), 
             new ColumnCellText ("SkipCount", true), 0.15, "SkipCount", false);
-        public static SortableColumn SkipCountColumn {
+        public SortableColumn SkipCountColumn {
             get { return skip_count_column; }
         }
         
-        private static SortableColumn disc_column = new SortableColumn (Catalog.GetString ("Disc"), 
+        private SortableColumn disc_column = new SortableColumn (Catalog.GetString ("Disc"), 
             new ColumnCellPositiveInt ("Disc", true), 0.10, "Disc", false);
-        public static SortableColumn DiscColumn {
+        public SortableColumn DiscColumn {
             get { return disc_column; }
         }
         
         //new SortableColumn ("Rating", new RatingColumnCell (null, true), 0.15, "Rating"),
         
-        private static SortableColumn last_played_column = new SortableColumn (Catalog.GetString ("Last Played"), 
+        private SortableColumn last_played_column = new SortableColumn (Catalog.GetString ("Last Played"), 
             new ColumnCellDateTime ("LastPlayed", true), 0.15, "LastPlayedStamp", false);
-        public static SortableColumn LastPlayedColumn {
+        public SortableColumn LastPlayedColumn {
             get { return last_played_column; }
         }
         
-        private static SortableColumn last_skipped_column = new SortableColumn (Catalog.GetString ("Last Skipped"), 
+        private SortableColumn last_skipped_column = new SortableColumn (Catalog.GetString ("Last Skipped"), 
             new ColumnCellDateTime ("LastSkipped", true), 0.15, "LastSkippedStamp", false);
-        public static SortableColumn LastSkippedColumn {
+        public SortableColumn LastSkippedColumn {
             get { return last_skipped_column; }
         }
         
-        private static SortableColumn date_added_column = new SortableColumn (Catalog.GetString ("Date Added"), 
+        private SortableColumn date_added_column = new SortableColumn (Catalog.GetString ("Date Added"), 
             new ColumnCellDateTime ("DateAdded", true), 0.15, "DateAddedStamp", false);
-        public static SortableColumn DateAddedColumn {
+        public SortableColumn DateAddedColumn {
             get { return date_added_column; }
         }
         
-        private static SortableColumn uri_column = new SortableColumn (Catalog.GetString ("Location"), 
+        private SortableColumn uri_column = new SortableColumn (Catalog.GetString ("Location"), 
             new ColumnCellText ("Uri", true), 0.15, "Uri", false);
-        public static SortableColumn UriColumn {
+        public SortableColumn UriColumn {
             get { return uri_column; }
         }
         
-        private static SortableColumn mime_type_column = new SortableColumn (Catalog.GetString ("Mime Type"), 
+        private SortableColumn mime_type_column = new SortableColumn (Catalog.GetString ("Mime Type"), 
             new ColumnCellText ("MimeType", true), 0.15, "MimeType", false);
-        public static SortableColumn MimeTypeColumn {
+        public SortableColumn MimeTypeColumn {
             get { return mime_type_column; }
         }
     }

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/TrackListView.cs	Wed May 14 22:45:11 2008
@@ -67,6 +67,15 @@
             
             while (source != null && controller == null) {
                 controller = source.Properties.Get<ColumnController> ("TrackView.ColumnController");
+                string controller_xml = null;
+                if (controller == null) {
+                    controller_xml = source.Properties.GetString ("TrackView.ColumnControllerXml");
+                    if (controller_xml != null) {
+                        controller = new XmlColumnController (controller_xml);
+                        source.Properties.Remove ("TrackView.ColumnControllerXml");
+                        source.Properties.Set<ColumnController> ("TrackView.ColumnController", controller);
+                    }
+                }
                 source = source.Parent;
             }
             

Added: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/XmlColumnController.cs	Wed May 14 22:45:11 2008
@@ -0,0 +1,189 @@
+//
+// XmlColumnController.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.IO;
+using System.Text;
+using System.Xml;
+using System.Reflection;
+
+using Hyena.Data;
+using Hyena.Data.Gui;
+
+namespace Banshee.Collection.Gui
+{
+    public class XmlColumnController : DefaultColumnController
+    {
+        public XmlColumnController (string xml) : base (false)
+        {
+            XmlTextReader reader = new XmlTextReader (new StringReader (xml));
+            
+            while (reader.Read ()) {
+                if (reader.NodeType == XmlNodeType.Element && reader.Name == "column-controller") {
+                    ReadColumnController (reader, reader.Depth);
+                }
+            }
+            
+            Load ();
+        }
+        
+        private void ReadColumnController (XmlTextReader reader, int depth)
+        {
+            while (reader.Read ()) {
+                if (reader.NodeType == XmlNodeType.Element) {
+                    switch (reader.Name) {
+                        case "column": ReadColumn (reader, reader.Depth); break;
+                        case "add-all-defaults": AddDefaultColumns (); break;
+                        case "add-default":
+                        case "remove-default":
+                            bool add_col = reader.Name[0] == 'a';
+                            while (reader.MoveToNextAttribute ()) {
+                                if (reader.Name == "column") {
+                                    Column col = GetDefaultColumn (reader.Value);
+                                    if (col != null) {
+                                        if (add_col) {
+                                            Add (col);
+                                        } else {
+                                            Remove (col);
+                                        }
+                                    }
+                                }
+                            }
+                            break;
+                    }
+                } else if (reader.NodeType == XmlNodeType.EndElement && reader.Depth == depth) {
+                    return;
+                }
+            }
+        }
+        
+        private void ReadColumn (XmlTextReader reader, int depth)
+        {
+            string modify_default = null;
+            
+            string title = null;
+            string sort_key = null;
+            double width = 0.0;
+            int max_width = 0;
+            int min_width = 0;
+            bool visible = true;
+            
+            string renderer_type = null;
+            string renderer_property = null;
+            bool renderer_expand = true;
+            
+            while (reader.MoveToNextAttribute ()) {
+                if (reader.Name == "modify-default") {
+                    modify_default = reader.Value;
+                    break;
+                }
+            }
+                
+            while (reader.Read ()) {
+                if (reader.NodeType == XmlNodeType.EndElement && reader.Depth == depth) {
+                    break;
+                } else if (reader.NodeType != XmlNodeType.Element) {
+                    continue;
+                }
+                
+                switch (reader.Name) {
+                    case "title": title = reader.ReadString (); break;
+                    case "sort-key": sort_key = reader.ReadString (); break;
+                    case "width": width = reader.ReadElementContentAsDouble (); break;
+                    case "max-width": max_width = reader.ReadElementContentAsInt (); break;
+                    case "min-width": min_width = reader.ReadElementContentAsInt (); break;
+                    case "visible": visible = ParseBoolean (reader.ReadString ()); break;
+                    case "renderer":
+                        while (reader.MoveToNextAttribute ()) {
+                            switch (reader.Name) {
+                                case "type": renderer_type = reader.Value; break;
+                                case "property": renderer_property = reader.Value; break;
+                                case "expand": renderer_expand = ParseBoolean (reader.Value); break;
+                            }
+                        }
+                        break;
+                }
+            }
+            
+            if (modify_default != null) {
+                Column column = GetDefaultColumn (modify_default);
+                    
+                if (title != null) {
+                    column.Title = title;
+                }
+                
+                if (renderer_property != null) {
+                    column.GetCell (0).Property = renderer_property;
+                }
+                
+                if (column.Visible != visible) {
+                    column.Visible = visible;
+                }
+                
+                if (column is SortableColumn && sort_key != null) {
+                    ((SortableColumn)column).SortKey = sort_key;
+                }
+            } else {
+                Type type = null;
+                
+                foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies ()) {
+                    type = asm.GetType (renderer_type, false, true);
+                    if (type != null) {
+                        break;
+                    }
+                }
+                
+                if (type == null) {
+                    throw new TypeLoadException (renderer_type);
+                }
+                
+                ColumnCell renderer = (ColumnCell)Activator.CreateInstance (type, renderer_property, renderer_expand);
+                
+                Column column = sort_key == null
+                    ? new Column (title, renderer, width, visible)
+                    : new SortableColumn (title, renderer, width, sort_key, visible);
+                column.MaxWidth = max_width;
+                column.MinWidth = min_width;
+                
+                Add (column);
+            }
+        }
+        
+        private bool ParseBoolean (string value)
+        {
+            value = value.ToLower ();
+            return value == "true";
+        }
+        
+        private Column GetDefaultColumn (string propertyName)
+        {
+            PropertyInfo property = GetType ().GetProperty (propertyName);
+            return property == null ? null : property.GetValue (this, null) as Column;
+        }
+    }
+}

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceComboBox.cs	Wed May 14 22:45:11 2008
@@ -43,7 +43,7 @@
             SourceRowRenderer renderer = new SourceRowRenderer ();
             renderer.ParentWidget = this;
             PackStart (renderer, true);
-            SetCellDataFunc (renderer, new CellLayoutDataFunc (SourceCellDataFunc));
+            SetCellDataFunc (renderer, new CellLayoutDataFunc (SourceRowRenderer.CellDataHandler));
             
             store = new SourceModel ();
             Model = store;
@@ -59,11 +59,6 @@
             store.Refresh ();
         }
         
-        private void SourceCellDataFunc (CellLayout layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
-        {
-            SourceRowRenderer.CellDataHandler (cell, tree_model, iter);
-        }
-        
         public void UpdateActiveSource ()
         {
             lock (this) {

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs	Wed May 14 22:45:11 2008
@@ -41,7 +41,7 @@
 {
     public class SourceRowRenderer : CellRendererText
     {
-        public static void CellDataHandler (CellRenderer cell, TreeModel model, TreeIter iter)
+        public static void CellDataHandler (CellLayout layout, CellRenderer cell, TreeModel model, TreeIter iter)
         {
             SourceRowRenderer renderer = cell as SourceRowRenderer;
             Source source = model.GetValue (iter, 0) as Source;

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs	Wed May 14 22:45:11 2008
@@ -93,7 +93,7 @@
             renderer = new SourceRowRenderer ();
             renderer.Padding = 5;
             focus_column.PackStart (renderer, true);
-            focus_column.SetCellDataFunc (renderer, new TreeCellDataFunc (SourceCellDataFunc));
+            focus_column.SetCellDataFunc (renderer, new CellLayoutDataFunc (SourceRowRenderer.CellDataHandler));
             AppendColumn (focus_column);
             
             HeadersVisible = false;
@@ -371,12 +371,6 @@
             renderer.Editable = false;
         }
         
-        private void SourceCellDataFunc (TreeViewColumn tree_column, CellRenderer cell,  
-            TreeModel tree_model, TreeIter iter)
-        {
-            SourceRowRenderer.CellDataHandler (cell, tree_model, iter);
-        }
-        
         private void ResetSelection ()
         {
             TreeIter iter = store.FindSource (ServiceManager.SourceManager.ActiveSource);

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.ThickClient.mdp	Wed May 14 22:45:11 2008
@@ -110,6 +110,7 @@
     <File name="Banshee.Sources.Gui/SourceModel.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Sources.Gui/SourceComboBox.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Collection.Gui/DefaultColumnController.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Collection.Gui/XmlColumnController.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="False" refto="Hyena.Gui" />
@@ -127,6 +128,7 @@
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Addins, Version=0.4.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Addins.Gui, Version=0.4.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Addins.Setup, Version=0.4.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+    <ProjectReference type="Gac" localcopy="True" refto="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   </References>
   <Deployment.LinuxDeployData generateScript="False" />
   <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="Makefile.am">

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Makefile.am	Wed May 14 22:45:11 2008
@@ -22,6 +22,7 @@
 	Banshee.Collection.Gui/PersistentColumnController.cs \
 	Banshee.Collection.Gui/TerseTrackListView.cs \
 	Banshee.Collection.Gui/TrackListView.cs \
+	Banshee.Collection.Gui/XmlColumnController.cs \
 	Banshee.Equalizer.Gui/EqualizerBandScale.cs \
 	Banshee.Equalizer.Gui/EqualizerLevelsBox.cs \
 	Banshee.Equalizer.Gui/EqualizerPresetComboBox.cs \

Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs	(original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Data.Gui/SortableColumn.cs	Wed May 14 22:45:11 2008
@@ -52,6 +52,7 @@
         
         public string SortKey {
             get { return sort_key; }
+            set { sort_key = value; }
         }
         
         public SortType SortType {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]