banshee r4261 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.Sources src/Libraries/Hyena/Hyena.Data.Sqlite



Author: gburt
Date: Sun Jul 27 19:17:11 2008
New Revision: 4261
URL: http://svn.gnome.org/viewvc/banshee?rev=4261&view=rev

Log:
2008-07-27  Gabriel Burt  <gabriel burt gmail com>

	* src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs:
	* src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs:
	* src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs:
	* src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
	Remove ClearManagedCache method, was redundant w/ Clear method.

	* src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: When the
	source is Deactivated, call InvalidateCache on the Track model and all
	filter models.  This should help prevent Banshee from using more and more
	RAM as you switch sources and scroll through lists.


Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
   trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs	Sun Jul 27 19:17:11 2008
@@ -199,7 +199,7 @@
 
         public override void InvalidateCache ()
         {
-            cache.ClearManagedCache ();
+            cache.Clear ();
             OnReloaded ();
         }
         

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs	Sun Jul 27 19:17:11 2008
@@ -177,7 +177,7 @@
             if (cache == null) {
                 Log.ErrorFormat ("Called invalidate cache for {0}'s track model, but cache is null", source);
             } else {
-                cache.ClearManagedCache ();
+                cache.Clear ();
                 OnReloaded ();
             }
         }

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs	Sun Jul 27 19:17:11 2008
@@ -36,7 +36,6 @@
     public interface IDatabaseTrackModelCache
     {
         void Clear ();
-        void ClearManagedCache ();
         void SaveSelection ();
         void UpdateAggregates ();
         void RestoreSelection ();

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	Sun Jul 27 19:17:11 2008
@@ -567,6 +567,14 @@
             if (!ever_reloaded)
                 Reload ();
         }
+        
+        public override void Deactivate ()
+        {
+            DatabaseTrackModel.InvalidateCache ();
+            foreach (IFilterListModel filter in AvailableFilters) {
+                filter.InvalidateCache ();
+            }
+        }
 
         protected virtual void RemoveTrackRange (DatabaseTrackListModel model, RangeCollection.Range range)
         {

Modified: trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs	(original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs	Sun Jul 27 19:17:11 2008
@@ -300,11 +300,6 @@
             }
         }
 
-        public void ClearManagedCache ()
-        {
-            base.Clear ();
-        }
-
         private bool saved_selection = false;
         private ICacheableItem saved_focus_item = null;
         public void SaveSelection ()



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