Author: gburt
Date: Mon Jan 28 20:53:30 2008
New Revision: 3065
URL: http://svn.gnome.org/viewvc/banshee?rev=3065&view=rev

Log:
2008-01-28  Gabriel Burt  <[EMAIL PROTECTED]>

        * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
        * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
        * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Add
        RemoveTrack methods (taking either an int or a LibraryTrackInfo).


Modified:
   trunk/banshee/ChangeLog
   
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
==============================================================================
--- 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
       (original)
+++ 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/TrackListDatabaseModel.cs
       Mon Jan 28 20:53:30 2008
@@ -269,7 +269,7 @@
         public override TrackInfo this[int index] {
             get { return cache.GetValue (index); }
         }
-        
+
         public override int Count {
             get { return count; }
         }

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs    
(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs    
Mon Jan 28 20:53:30 2008
@@ -88,6 +88,14 @@
             }
         }
 
+        public override void RemoveTrack (LibraryTrackInfo track)
+        {
+            remove_track_command.ApplyValues (track.DbId);
+            ServiceManager.DbConnection.Execute (remove_track_command);
+            Reload ();
+            ReloadChildren ();
+        }
+
         /*public override void RemoveTracks (IEnumerable<TrackInfo> tracks)
         {
 

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs  
(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs  
Mon Jan 28 20:53:30 2008
@@ -49,8 +49,10 @@
 {
     public class PlaylistSource : AbstractPlaylistSource
     {
-        private static HyenaSqliteCommand add_tracks_command;
-        private static HyenaSqliteCommand remove_tracks_command;
+        private static HyenaSqliteCommand add_track_command;
+        private static HyenaSqliteCommand remove_track_command;
+        private static HyenaSqliteCommand add_track_range_command;
+        private static HyenaSqliteCommand remove_track_range_command;
         private static HyenaSqliteCommand delete_command;
 
         private static string generic_name = Catalog.GetString ("Playlist");
@@ -69,14 +71,22 @@
 
         static PlaylistSource () 
         {
-            add_tracks_command = new HyenaSqliteCommand (@"
+            add_track_command = new HyenaSqliteCommand (
+                "INSERT INTO CorePlaylistEntries (PlaylistID, TrackID) VALUES 
(?, ?)", 2
+            );
+
+            remove_track_command = new HyenaSqliteCommand (
+                "DELETE FROM CorePlaylistEntries WHERE PlaylistID = ? AND 
TrackID = ?", 2
+            );
+
+            add_track_range_command = new HyenaSqliteCommand (@"
                 INSERT INTO CorePlaylistEntries
                     SELECT null, ?, ItemID, 0
                         FROM CoreCache WHERE ModelID = ?
                         LIMIT ?, ?", 4
             );
 
-            remove_tracks_command = new HyenaSqliteCommand (@"
+            remove_track_range_command = new HyenaSqliteCommand (@"
                 DELETE FROM CorePlaylistEntries WHERE PlaylistID = ? AND
                     TrackID IN (SELECT ItemID FROM CoreCache
                         WHERE ModelID = ? LIMIT ?, ?)", 4
@@ -179,6 +189,13 @@
 
 #endregion
 
+        /*public override void AddTrack (LibraryTrackInfo track)
+        {
+            add_track_command.ApplyValues (DbId, track.DbId);
+            ServiceManager.DbConnection.Execute (add_track_command);
+            Reload ();
+        }*/
+
         public virtual void AddSelectedTracks (TrackListDatabaseModel from)
         {
             if (from == track_model)
@@ -189,14 +206,21 @@
 
         protected virtual void AddTrackRange (TrackListDatabaseModel from, 
RangeCollection.Range range)
         {
-            add_tracks_command.ApplyValues (DbId, from.CacheId, range.Start, 
range.End - range.Start + 1);
-            ServiceManager.DbConnection.Execute (add_tracks_command);
+            add_track_range_command.ApplyValues (DbId, from.CacheId, 
range.Start, range.End - range.Start + 1);
+            ServiceManager.DbConnection.Execute (add_track_range_command);
+        }
+
+        public override void RemoveTrack (LibraryTrackInfo track)
+        {
+            remove_track_command.ApplyValues (DbId, track.DbId);
+            ServiceManager.DbConnection.Execute (remove_track_command);
+            Reload ();
         }
 
         protected override void RemoveTrackRange (TrackListDatabaseModel from, 
RangeCollection.Range range)
         {
-            remove_tracks_command.ApplyValues (DbId, from.CacheId, 
range.Start, range.End - range.Start + 1);
-            ServiceManager.DbConnection.Execute (remove_tracks_command);
+            remove_track_range_command.ApplyValues (DbId, from.CacheId, 
range.Start, range.End - range.Start + 1);
+            ServiceManager.DbConnection.Execute (remove_track_range_command);
         }
 
         public static IEnumerable<PlaylistSource> LoadAll ()

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs   
(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs   
Mon Jan 28 20:53:30 2008
@@ -121,6 +121,16 @@
             OnUpdated ();
         }
 
+        public virtual void RemoveTrack (int index)
+        {
+            RemoveTrack (track_model [index] as LibraryTrackInfo);
+        }
+
+        public virtual void RemoveTrack (LibraryTrackInfo track)
+        {
+            throw new NotImplementedException(); 
+        }
+
         // Methods for removing tracks from this source
         /*public virtual void RemoveTracks (IEnumerable<TrackInfo> tracks)
         {
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to