Show the search expression for the virtual library in a tooltip when hovering over the tab for the virtual library. Fixes #1291691 [[Enhancement] VL search expression tooltip on hover](https://bugs.launchpad.net/calibre/+bug/1291691)

This commit is contained in:
Kovid Goyal 2014-03-13 08:52:58 +05:30
parent d78b9c3f0d
commit aea66db018

View File

@ -315,7 +315,8 @@ class VLTabs(QTabBar): # {{{
def rebuild(self): def rebuild(self):
self.currentChanged.disconnect(self.tab_changed) self.currentChanged.disconnect(self.tab_changed)
db = self.current_db db = self.current_db
virt_libs = frozenset(db.prefs.get('virtual_libraries', {})) vl_map = db.prefs.get('virtual_libraries', {})
virt_libs = frozenset(vl_map)
hidden = frozenset(db.prefs['virt_libs_hidden']) hidden = frozenset(db.prefs['virt_libs_hidden'])
if hidden - virt_libs: if hidden - virt_libs:
db.prefs['virt_libs_hidden'] = list(hidden.intersection(virt_libs)) db.prefs['virt_libs_hidden'] = list(hidden.intersection(virt_libs))
@ -328,6 +329,9 @@ class VLTabs(QTabBar): # {{{
order = {x:i for i, x in enumerate(order)} order = {x:i for i, x in enumerate(order)}
for i, vl in enumerate(sorted(virt_libs, key=lambda x:(order.get(x, 0), sort_key(x)))): for i, vl in enumerate(sorted(virt_libs, key=lambda x:(order.get(x, 0), sort_key(x)))):
self.addTab(vl.replace('&', '&&') or _('All books')) self.addTab(vl.replace('&', '&&') or _('All books'))
sexp = vl_map.get(vl, None)
if sexp is not None:
self.setTabToolTip(i, _('Search expression for this virtual library:') + '\n\n' + sexp)
self.setTabData(i, vl) self.setTabData(i, vl)
if vl == current_lib: if vl == current_lib:
current_idx = i current_idx = i