banshee r3408 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.SmartPlaylist src/Core/Banshee.Services/Banshee.Sources



Author: gburt
Date: Tue Mar 11 00:25:52 2008
New Revision: 3408
URL: http://svn.gnome.org/viewvc/banshee?rev=3408&view=rev

Log:
2008-03-10  Gabriel Burt  <gabriel burt gmail com>

	* src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: 
	* src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs:
	Fix smart playlists to work with new ReloadTrack override.


Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs	Tue Mar 11 00:25:52 2008
@@ -247,7 +247,7 @@
         
         private void OnDependencyUpdated (object sender, EventArgs args)
         {
-            RateLimitedReload ();
+            Reload ();
         }
         
 #endregion
@@ -291,24 +291,24 @@
 
 #region DatabaseSource overrides
 
-        protected override void ReloadTrackModel ()
+        protected override void ReloadTrackModel (bool unfiltered, bool notify)
         {
-            // Wipe the member list clean
-            ServiceManager.DbConnection.Execute (String.Format (
-                "DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID = {0}", DbId
-            ));
-
-            // Repopulate it 
-            ServiceManager.DbConnection.Execute (String.Format (
-                @"INSERT INTO CoreSmartPlaylistEntries 
-                    SELECT NULL, {0} as SmartPlaylistID, TrackId
-                        FROM CoreTracks, CoreArtists, CoreAlbums
-                        WHERE CoreTracks.ArtistID = CoreArtists.ArtistID AND CoreTracks.AlbumID = CoreAlbums.AlbumID
-                        {1} {2}",
-                DbId, PrependCondition("AND"), OrderAndLimit
-            ));
+            // The first time ReloadTrackModel is called, it is called with unfiltered = true,
+            // so only repopulate the smart playlist entries then.
+            if (unfiltered) {
+                // Wipe the member list clean and repopulate it 
+                ServiceManager.DbConnection.Execute (String.Format (
+                    @"DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID = {0};
+                      INSERT INTO CoreSmartPlaylistEntries 
+                        SELECT NULL, {0} as SmartPlaylistID, TrackId
+                            FROM CoreTracks, CoreArtists, CoreAlbums
+                            WHERE CoreTracks.ArtistID = CoreArtists.ArtistID AND CoreTracks.AlbumID = CoreAlbums.AlbumID
+                            {1} {2}",
+                    DbId, PrependCondition("AND"), OrderAndLimit
+                ));
+            }
 
-            base.ReloadTrackModel ();
+            base.ReloadTrackModel (unfiltered, notify);
         }
 
 #endregion

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	Tue Mar 11 00:25:52 2008
@@ -160,12 +160,12 @@
             }
         }
 
-        protected virtual void ReloadTrackModel ()
+        protected void ReloadTrackModel ()
         {
             ReloadTrackModel (false, true);
         }
 
-        protected void ReloadTrackModel (bool unfiltered, bool notify)
+        protected virtual void ReloadTrackModel (bool unfiltered, bool notify)
         {
             track_model.Reload (unfiltered, notify);
             Hyena.Log.DebugFormat ("Called {0}::ReloadTrackModel ({1}) [Count={2}]", GetType ().FullName, 



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