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