banshee r4045 - in trunk/banshee: . libbanshee src/Clients/Nereid/Nereid src/Core/Banshee.Widgets/Banshee.Widgets



Author: abock
Date: Fri May 30 23:13:52 2008
New Revision: 4045
URL: http://svn.gnome.org/viewvc/banshee?rev=4045&view=rev

Log:
2008-05-30  Aaron Bockover  <abock gnome org>

    * src/Clients/Nereid/Nereid/ViewContainer.cs:
    * src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs: Make the
    filter menu work by inserting a query part when items are selected

    * libbanshee/banshee-player-pipeline.c: Disabled the equalizer yet again
    because the element is still too buggy in GStreamer causing static



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/libbanshee/banshee-player-pipeline.c
   trunk/banshee/src/Clients/Nereid/Nereid/ViewContainer.cs
   trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs

Modified: trunk/banshee/libbanshee/banshee-player-pipeline.c
==============================================================================
--- trunk/banshee/libbanshee/banshee-player-pipeline.c	(original)
+++ trunk/banshee/libbanshee/banshee-player-pipeline.c	Fri May 30 23:13:52 2008
@@ -174,9 +174,9 @@
     GstPad *teepad;
     GstElement *audiosink;
     GstElement *audiosinkqueue;
-    GstElement *audioconvert, *audioconvert2;
-    GstElement *capsfilter = NULL;
-    gboolean buggy_eq = FALSE;
+    //GstElement *audioconvert, *audioconvert2;
+    //GstElement *capsfilter = NULL;
+    //gboolean buggy_eq = FALSE;
     
     g_return_val_if_fail (IS_BANSHEE_PLAYER (player), FALSE);
     
@@ -213,7 +213,7 @@
     audiosinkqueue = gst_element_factory_make ("queue", "audiosinkqueue");
     g_return_val_if_fail (audiosinkqueue != NULL, FALSE);
 
-    audioconvert = gst_element_factory_make ("audioconvert", "audioconvert");
+    /*audioconvert = gst_element_factory_make ("audioconvert", "audioconvert");
     audioconvert2 = gst_element_factory_make ("audioconvert", "audioconvert2");
     player->equalizer = gst_element_factory_make ("equalizer-10bands", "equalizer-10bands");
     player->preamp = gst_element_factory_make ("volume", "preamp");
@@ -232,12 +232,12 @@
             g_object_set (capsfilter, "caps", caps, NULL);
             gst_caps_unref (caps);
         }
-    }
+    }*/
 
     // Add elements to custom audio sink
     gst_bin_add (GST_BIN (player->audiobin), player->audiotee);
     
-    if (player->equalizer != NULL) {
+    /*if (player->equalizer != NULL) {
         gst_bin_add (GST_BIN (player->audiobin), audioconvert);
         gst_bin_add (GST_BIN (player->audiobin), audioconvert2);
 
@@ -252,7 +252,7 @@
         player->preamp = NULL;
         g_object_unref (audioconvert);
         g_object_unref (audioconvert2);
-    }
+    }*/
     
     gst_bin_add (GST_BIN (player->audiobin), audiosinkqueue);
     gst_bin_add (GST_BIN (player->audiobin), audiosink);
@@ -267,7 +267,7 @@
         gst_element_get_pad (audiosinkqueue, "sink"));
 
     // Link the queue and the actual audio sink
-    if (player->equalizer != NULL) {
+    /*if (player->equalizer != NULL) {
         // link in equalizer, preamp and audioconvert.
         if (buggy_eq) {
             gst_element_link_many (audiosinkqueue, audioconvert, player->preamp, 
@@ -276,10 +276,10 @@
             gst_element_link_many (audiosinkqueue, audioconvert, capsfilter, 
                 player->preamp, player->equalizer, audioconvert2, audiosink, NULL);
         }
-    } else {
+    } else {*/
         // link the queue with the real audio sink
         gst_element_link (audiosinkqueue, audiosink);
-    }
+    //}
     
     // Now that our internal audio sink is constructed, tell playbin to use it
     g_object_set (G_OBJECT (player->playbin), "audio-sink", player->audiobin, NULL);

Modified: trunk/banshee/src/Clients/Nereid/Nereid/ViewContainer.cs
==============================================================================
--- trunk/banshee/src/Clients/Nereid/Nereid/ViewContainer.cs	(original)
+++ trunk/banshee/src/Clients/Nereid/Nereid/ViewContainer.cs	Fri May 30 23:13:52 2008
@@ -27,6 +27,7 @@
 //
 
 using System;
+using System.Collections.Generic;
 using Gtk;
 using Mono.Unix;
 
@@ -114,18 +115,42 @@
             PackEnd (new ConnectedMessageBar (), false, true, 0);
         }
         
+        private struct SearchFilter
+        {
+            public int Id;
+            public string Field;
+            public string Title;
+        }
+        
+        private Dictionary<int, SearchFilter> search_filters = new Dictionary<int, SearchFilter> ();
+        
+        private void AddSearchFilter (TrackFilterType id, string field, string title)
+        {
+            SearchFilter filter = new SearchFilter ();
+            filter.Id = (int)id;
+            filter.Field = field;
+            filter.Title = title;
+            search_filters.Add (filter.Id, filter);
+        }
+        
         private void BuildSearchEntry ()
         {
+            AddSearchFilter (TrackFilterType.None, String.Empty, Catalog.GetString ("All Columns"));
+            AddSearchFilter (TrackFilterType.SongName, "title", Catalog.GetString ("Track Title"));
+            AddSearchFilter (TrackFilterType.ArtistName, "artist", Catalog.GetString ("Artist Name"));
+            AddSearchFilter (TrackFilterType.AlbumTitle, "album", Catalog.GetString ("Album Title"));
+            AddSearchFilter (TrackFilterType.Genre, "genre", Catalog.GetString ("Genre"));
+            AddSearchFilter (TrackFilterType.Year, "year", Catalog.GetString ("Year"));
+        
             search_entry = new SearchEntry ();
             search_entry.SetSizeRequest (200, -1);
             
-            /*search_entry.AddFilterOption ((int)TrackFilterType.None, Catalog.GetString ("All Columns"));
-            search_entry.AddFilterSeparator ();
-            search_entry.AddFilterOption ((int)TrackFilterType.SongName, Catalog.GetString ("Song Name"));
-            search_entry.AddFilterOption ((int)TrackFilterType.ArtistName, Catalog.GetString ("Artist Name"));
-            search_entry.AddFilterOption ((int)TrackFilterType.AlbumTitle, Catalog.GetString ("Album Title"));
-            search_entry.AddFilterOption ((int)TrackFilterType.Genre, Catalog.GetString ("Genre"));
-            search_entry.AddFilterOption ((int)TrackFilterType.Year, Catalog.GetString ("Year"));  */
+            foreach (SearchFilter filter in search_filters.Values) {
+                search_entry.AddFilterOption (filter.Id, filter.Title);
+                if (filter.Id == (int)TrackFilterType.None) {
+                    search_entry.AddFilterSeparator ();
+                }
+            }
             
             search_entry.FilterChanged += OnSearchEntryFilterChanged;
             search_entry.ActivateFilter ((int)TrackFilterType.None);
@@ -135,8 +160,20 @@
         
         private void OnSearchEntryFilterChanged (object o, EventArgs args)
         {
-            search_entry.EmptyMessage = String.Format (Catalog.GetString ("Filter on {0}"),
-                search_entry.GetLabelForFilterID (search_entry.ActiveFilterID));
+            search_entry.EmptyMessage = String.Format (Catalog.GetString ("Filter Results"));
+            /*search_entry.EmptyMessage = String.Format (Catalog.GetString ("Filter on {0}"),
+                search_entry.GetLabelForFilterID (search_entry.ActiveFilterID));*/
+                
+            string query = search_filters.ContainsKey (search_entry.ActiveFilterID)
+                ? search_filters[search_entry.ActiveFilterID].Field
+                : String.Empty;
+            
+            search_entry.Query = String.IsNullOrEmpty (query) ? String.Empty : query + ":";
+                
+            Editable editable = search_entry.InnerEntry as Editable;
+            if (editable != null) {
+                editable.Position = search_entry.Query.Length;
+            }
         }
         
         public void SetFooter (Widget contents)

Modified: trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Widgets/Banshee.Widgets/SearchEntry.cs	Fri May 30 23:13:52 2008
@@ -384,7 +384,7 @@
             get { return entry; }
         }
 
-        private class FilterMenuItem : CheckMenuItem
+        private class FilterMenuItem : MenuItem /*CheckMenuItem*/
         {
             private int id;
             private string label;
@@ -393,7 +393,7 @@
             {
                 this.id = id;
                 this.label = label;
-                DrawAsRadio = true;
+                //DrawAsRadio = true;
             }
 
             public int ID {
@@ -403,6 +403,23 @@
             public string Label {
                 get { return label; }
             }
+            
+            // FIXME: Remove when restored to CheckMenuItem
+            private bool active;
+            public bool Active {
+                get { return active; }
+                set { active = value; }
+            }
+            
+            public new event EventHandler Toggled;
+            protected override void OnActivated ()
+            {
+                base.OnActivated ();
+                if (Toggled != null) {
+                    Toggled (this, EventArgs.Empty);
+                }
+            }
+
         }
 
         private class FramelessEntry : Entry



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