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.