Hi, I'm the guy who provided the patch for BGO #333904 (searching based on a track's metadata). I noticed that this can be very slow when having a larger library due to the fact that banshee tries to search after each character "entered" to the search field. I've attached a patch which speeds up the search by suspending the OnSimpleSearch method until the whole search criteria has been "entered" into the field. I was not sure about posting this on the mailing list but it's only a small 4-lines patch. If you prefer a bugzilla entry, should I open a new bug or attach it to the original one (and reopen it)? Thanks, Dominik -- Dominik Meister <neptoon gmail com> My public GnuPG key is available at http://meischter.homelinux.org/gpg.txt
Index: src/PlayerInterface.cs
===================================================================
RCS file: /cvs/gnome/banshee/src/PlayerInterface.cs,v
retrieving revision 1.198
diff -u -p -r1.198 PlayerInterface.cs
--- src/PlayerInterface.cs 12 Jul 2006 21:12:16 -0000 1.198
+++ src/PlayerInterface.cs 21 Jul 2006 08:17:12 -0000
@@ -91,6 +91,8 @@ namespace Banshee
[Widget] private ProgressBar dapDiskUsageBar;
private bool incrementedCurrentSongPlayCount;
+
+ private bool suspendSearch;
public Gtk.Window Window {
get {
@@ -1377,6 +1379,10 @@ namespace Banshee
if(SourceManager.ActiveSource.HandlesSearch) {
return;
}
+
+ if (suspendSearch) {
+ return;
+ }
playlistModel.ClearModel();
@@ -2272,6 +2278,9 @@ namespace Banshee
return;
}
+ // suspend the search functionality (for performance reasons)
+ suspendSearch = true;
+
switch(criteria) {
case SearchTrackCriteria.Album:
searchEntry.Field = Catalog.GetString("Album Title");
@@ -2286,6 +2295,8 @@ namespace Banshee
searchEntry.Query = track.Genre;
break;
}
+
+ suspendSearch = false;
playlistView.HasFocus = true;
}
Attachment:
signature.asc
Description: This is a digitally signed message part