I was experimenting with modifying the library search and breadcrumbs, and
this is what I came up with. What do you think? It gives more room to the
library tab - but hides the search feature a bit.

I hope this is how you do patches:

diff --git a/sonata/sonata/consts.py b/sonata.modified/sonata/consts.py
index 8e54a49..e8e7fef 100644
--- a/sonata/sonata/consts.py
+++ b/sonata.modified/sonata/consts.py
@@ -27,7 +27,7 @@ class Constants:
         self.LYRIC_TIMEOUT = 10
         self.NOTIFICATION_WIDTH_MAX = 500
         self.NOTIFICATION_WIDTH_MIN = 350
-        self.FULLSCREEN_COVER_SIZE = 500
+        self.FULLSCREEN_COVER_SIZE = 400
         self.ART_LOCATION_HOMECOVERS = 0      #
~/.covers/[artist]-[album].jpg
         self.ART_LOCATION_COVER = 1           # file_dir/cover.jpg
         self.ART_LOCATION_ALBUM = 2           # file_dir/album.jpg
--- a/sonata/sonata/library.py
+++ b/sonata.modified/sonata/library.py
@@ -74,15 +74,16 @@ class Library(object):
         self.library_selection = self.library.get_selection()
         self.breadcrumbs = breadcrumbs.CrumbBox()
         self.breadcrumbs.props.spacing = 2
+        # self.breadcrumbs.set_no_show_all(True)
         expanderwindow2 = ui.scrollwindow(add=self.library)
         self.searchbox = gtk.HBox()
+        self.searchbox.hide()
+        self.searchbox.set_no_show_all(True)
         self.searchcombo = ui.combo(items=self.search_terms)
         self.searchcombo.set_tooltip_text(_("Search terms"))
         self.searchtext = ui.entry()
         self.searchtext.set_tooltip_text(_("Search library"))
         self.searchbutton = ui.button(img=ui.image(stock=gtk.STOCK_CANCEL),
h=self.searchcombo.size_request()[1])
-        self.searchbutton.set_no_show_all(True)
-        self.searchbutton.hide()
         self.searchbutton.set_tooltip_text(_("End Search"))
         self.libraryview = ui.button(relief=gtk.RELIEF_NONE)
         self.libraryview.set_tooltip_text(_("Library browsing view"))
@@ -93,9 +94,11 @@ class Library(object):
         self.searchbox.pack_start(self.searchtext, True, True, 2)
         self.searchbox.pack_start(self.searchcombo, False, False, 2)
         self.searchbox.pack_start(self.searchbutton, False, False, 2)
+
         self.libraryvbox.pack_start(self.breadcrumbs, False, False, 2)
-        self.libraryvbox.pack_start(expanderwindow2, True, True)
         self.libraryvbox.pack_start(self.searchbox, False, False, 2)
+        self.libraryvbox.pack_start(expanderwindow2, True, True)
+

         self.tab = new_tab(self.libraryvbox, gtk.STOCK_HARDDISK,
TAB_LIBRARY, self.library)

@@ -1090,12 +1093,14 @@ class Library(object):
             self.libsearchfilter_toggle(move_focus)

     def search_visible(self):
-        return self.searchbutton.get_property('visible')
+        return self.searchbox.get_property('visible')

     def libsearchfilter_toggle(self, move_focus):
+        """ Toggle the search box """
         if not self.search_visible() and self.connected():
             self.library.set_property('has-tooltip', True)
-            ui.show(self.searchbutton)
+            ui.show(self.searchbox)
+            ui.hide(self.breadcrumbs)
             self.prevlibtodo = 'foo'
             self.prevlibtodo_base = "__"
             self.prevlibtodo_base_results = []
@@ -1106,7 +1111,8 @@ class Library(object):
             qsearch_thread.setDaemon(True)
             qsearch_thread.start()
         elif self.search_visible():
-            ui.hide(self.searchbutton)
+            ui.hide(self.searchbox)
+            ui.show(self.breadcrumbs)
             self.searchtext.handler_block(self.libfilter_changed_handler)
             self.searchtext.set_text("")
             self.searchtext.handler_unblock(self.libfilter_changed_handler)
@@ -1117,9 +1123,10 @@ class Library(object):

     def libsearchfilter_feed_loop(self, editable):
         if not self.search_visible():
+            # Turn on the search
             self.libsearchfilter_toggle(None)
         # Lets only trigger the searchfilter_loop if 200ms pass without a
change
-        # in gtk.Entry
+        # in gtk.Entry -- ???
         try:
             gobject.source_remove(self.libfilterbox_source)
         except:
@@ -1139,6 +1146,9 @@ class Library(object):
         self.libfilterbox_cond.release()

     def libsearchfilter_loop(self):
+        """ What does this do? It is the threaded search process.
+        It runs in the background. It continually checks the search
+        field and continues to search for the term accordingly."""
         while True:
             # copy the last command or pattern safely
             self.libfilterbox_cond.acquire()
@@ -1158,7 +1168,7 @@ class Library(object):
                     gobject.idle_add(self.libsearchfilter_do_search,
searchby, todo)
                 elif len(todo) == 0:
                     gobject.idle_add(self.filtering_entry_revert_color,
self.searchtext)
-                    self.libsearchfilter_toggle(False)
+                    # self.libsearchfilter_toggle(False)
                 else:
                     gobject.idle_add(self.filtering_entry_revert_color,
self.searchtext)
             self.libfilterbox_cond.acquire()
@@ -1255,4 +1265,4 @@ class Library(object):
         gobject.idle_add(self.searchtext.grab_focus)

     def libsearchfilter_get_style(self):
-        return self.searchtext.get_style()
+        return self.searchtext.get_style()
\ No newline at end of file
diff --git a/sonata/sonata/main.py b/sonata.modified/sonata/main.py
index 3af9965..336b8a7 100644
--- a/sonata/sonata/main.py
+++ b/sonata.modified/sonata/main.py
@@ -255,6 +255,7 @@ class Base(object):
             ('clearmenu', gtk.STOCK_CLEAR, _('_Clear'), '<Ctrl>Delete',
None, self.mpd_clear),
             ('updatefullmenu', None, _('_Entire Library'),
'<Ctrl><Shift>u', None, self.on_updatedb),
             ('updateselectedmenu', None, _('_Selected Items'), '<Ctrl>u',
None, self.on_updatedb_shortcut),
+            ('searchmenu', gtk.STOCK_FIND, _('Search'), None, None,
self.on_library_search_shortcut),
             ('preferencemenu', gtk.STOCK_PREFERENCES, _('_Preferences...'),
'F5', None, self.on_prefs),
             ('aboutmenu', None, _('_About...'), 'F1', None, self.on_about),
             ('tagmenu', None, _('_Edit Tags...'), '<Ctrl>t', None,
self.on_tags_edit),
@@ -355,6 +356,7 @@ class Base(object):
                 <separator name="FM1"/>
                 <menuitem action="repeatmenu"/>
                 <menuitem action="randommenu"/>
+                <menuitem action="searchmenu"/>
                 <menu action="updatemenu">
                   <menuitem action="updateselectedmenu"/>
                   <menuitem action="updatefullmenu"/>
@@ -485,6 +487,7 @@ class Base(object):
         self.mainmenu = self.UIManager.get_widget('/mainmenu')
         self.randommenu = self.UIManager.get_widget('/mainmenu/randommenu')
         self.repeatmenu = self.UIManager.get_widget('/mainmenu/repeatmenu')
+        self.searchmenu = self.UIManager.get_widget('/mainmenu/searchmenu')
         self.imagemenu = self.UIManager.get_widget('/imagemenu')
         self.traymenu = self.UIManager.get_widget('/traymenu')
         self.librarymenu = self.UIManager.get_widget('/librarymenu')
@@ -2989,8 +2992,10 @@ class Base(object):
             return
         if self.current_tab != self.TAB_LIBRARY:
             self.switch_to_tab_name(self.TAB_LIBRARY)
-        if self.library.search_visible():
-            self.library.on_search_end(None)
+        # if self.library.search_visible():
+        #     self.library.on_search_end(None)
+        if not self.library.search_visible():
+            self.library.libsearchfilter_toggle(False)
         self.library.libsearchfilter_set_focus()

     def update_menu_visibility(self, show_songinfo_only=False):


Matthew
_______________________________________________
Sonata-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/sonata-users

Reply via email to