[banshee] [Nereid] Make ctrl-f and / work on all search entries



commit 16e66c6894b78e531e2d055e32bf1b15ef793e7c
Author: Gabriel Burt <gabriel burt gmail com>
Date:   Wed Jul 14 18:35:15 2010 -0700

    [Nereid] Make ctrl-f and / work on all search entries
    
    Previously they didn't work for Internet Archive, Amazon MP3 Store, and
    Miro Guide.

 src/Clients/Nereid/Nereid/PlayerInterface.cs       |    7 +++++--
 .../Banshee.WebSource/WebSource.cs                 |    6 ++++--
 .../Banshee.AmazonMp3.Store/StoreSource.cs         |    2 +-
 .../Banshee.InternetArchive/HeaderFilters.cs       |    2 ++
 .../Banshee.InternetArchive/HomeView.cs            |    4 +++-
 .../Banshee.MiroGuide/MiroGuideSource.cs           |    2 +-
 6 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/src/Clients/Nereid/Nereid/PlayerInterface.cs b/src/Clients/Nereid/Nereid/PlayerInterface.cs
index 31bb762..fae8e49 100644
--- a/src/Clients/Nereid/Nereid/PlayerInterface.cs
+++ b/src/Clients/Nereid/Nereid/PlayerInterface.cs
@@ -666,8 +666,11 @@ namespace Nereid
                     break;
             }
 
-            if (focus_search && view_container.SearchEntry.Visible && !view_container.SearchEntry.HasFocus && !source_view.EditingRow) {
-                view_container.SearchEntry.HasFocus = true;
+            // The source might have its own custom search entry - use it if so
+            var src = ServiceManager.SourceManager.ActiveSource;
+            var search_entry = src.Properties.Get<SearchEntry> ("Nereid.SearchEntry") ?? view_container.SearchEntry;
+            if (focus_search && search_entry.Visible && !search_entry.HasFocus && !source_view.EditingRow) {
+                search_entry.HasFocus = true;
                 return true;
             }
 
diff --git a/src/Core/Banshee.WebBrowser/Banshee.WebSource/WebSource.cs b/src/Core/Banshee.WebBrowser/Banshee.WebSource/WebSource.cs
index 7859944..481f5f8 100644
--- a/src/Core/Banshee.WebBrowser/Banshee.WebSource/WebSource.cs
+++ b/src/Core/Banshee.WebBrowser/Banshee.WebSource/WebSource.cs
@@ -48,14 +48,16 @@ namespace Banshee.WebSource
         public override void Activate ()
         {
             if (source_contents == null) {
+                var shell = GetWidget ();
                 Properties.Set<ISourceContents> ("Nereid.SourceContents",
-                    source_contents = new WebSourceContents (this, GetWidget ()));
+                    source_contents = new WebSourceContents (this, shell));
+                Properties.Set<Banshee.Widgets.SearchEntry> ("Nereid.SearchEntry", shell.SearchEntry);
             }
 
             base.Activate ();
         }
 
-        protected abstract Gtk.Widget GetWidget ();
+        protected abstract WebBrowserShell GetWidget ();
 
         public override int Count {
             get { return 0; }
diff --git a/src/Extensions/Banshee.AmazonMp3.Store/Banshee.AmazonMp3.Store/StoreSource.cs b/src/Extensions/Banshee.AmazonMp3.Store/Banshee.AmazonMp3.Store/StoreSource.cs
index d91f478..2aa3f24 100644
--- a/src/Extensions/Banshee.AmazonMp3.Store/Banshee.AmazonMp3.Store/StoreSource.cs
+++ b/src/Extensions/Banshee.AmazonMp3.Store/Banshee.AmazonMp3.Store/StoreSource.cs
@@ -38,7 +38,7 @@ namespace Banshee.AmazonMp3.Store
             Properties.SetString ("Icon.Name", "amazon-mp3-store-source");
         }
 
-        protected override Gtk.Widget GetWidget ()
+        protected override Banshee.WebSource.WebBrowserShell GetWidget ()
         {
             return new StoreWebBrowserShell (new StoreView ());
         }
diff --git a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
index 593268a..a096ca2 100644
--- a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
+++ b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HeaderFilters.cs
@@ -118,6 +118,8 @@ namespace Banshee.InternetArchive
                 EmptyMessage = String.Format (Catalog.GetString ("Optional Query"))
             };
 
+            source.Properties.Set<Banshee.Widgets.SearchEntry> ("Nereid.SearchEntry", entry);
+
             entry.Activated += (o, a) => { search_button.Activate (); };
 
             // Add 'filter' items
diff --git a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HomeView.cs b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HomeView.cs
index 43fdfff..a2edaa9 100644
--- a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HomeView.cs
+++ b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/HomeView.cs
@@ -95,11 +95,13 @@ namespace Banshee.InternetArchive
 
             // Search entry/button
             var search_box = new HBox () { Spacing = 6, BorderWidth = 4 };
-            var entry = new Banshee.Widgets.SearchEntry () {
+            var entry = new SearchEntry () {
                 Visible = true,
                 EmptyMessage = String.Format (Catalog.GetString ("Search..."))
             };
 
+            source.Properties.Set<SearchEntry> ("Nereid.SearchEntry", entry);
+
             // Make the search entry text nice and big
             var font = entry.InnerEntry.Style.FontDescription.Copy ();
             font.Size = (int) (font.Size * Pango.Scale.XLarge);
diff --git a/src/Extensions/Banshee.MiroGuide/Banshee.MiroGuide/MiroGuideSource.cs b/src/Extensions/Banshee.MiroGuide/Banshee.MiroGuide/MiroGuideSource.cs
index 1c60e08..284dcaf 100644
--- a/src/Extensions/Banshee.MiroGuide/Banshee.MiroGuide/MiroGuideSource.cs
+++ b/src/Extensions/Banshee.MiroGuide/Banshee.MiroGuide/MiroGuideSource.cs
@@ -49,7 +49,7 @@ namespace Banshee.MiroGuide
             Properties.SetString ("Icon.Name", "miro-guide-source");
         }
 
-        protected override Gtk.Widget GetWidget ()
+        protected override Banshee.WebSource.WebBrowserShell GetWidget ()
         {
             return new Banshee.WebSource.WebBrowserShell (Name, new MiroGuideView ());
         }



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