Virtual Libraries: If the user selects a virtual library whose tab has been closed via the Virtual Library button, re-open the tab instead of displaying the virtual library in the All Books tab. Fixes #1322474 [Closing a Virtual Library Tab Flags It As Hidden](https://bugs.launchpad.net/calibre/+bug/1322474)

This commit is contained in:
Kovid Goyal 2014-05-26 19:13:16 +05:30
parent 107303bf06
commit 20dc791686

View File

@ -99,7 +99,6 @@ class LibraryViewMixin(object): # {{{
if v is self.library_view and v.row_count() == 0:
self.book_details.reset_info()
# }}}
class LibraryWidget(Splitter): # {{{
@ -317,13 +316,17 @@ class VLTabs(QTabBar): # {{{
db = self.current_db
vl_map = db.prefs.get('virtual_libraries', {})
virt_libs = frozenset(vl_map)
hidden = frozenset(db.prefs['virt_libs_hidden'])
hidden = set(db.prefs['virt_libs_hidden'])
if hidden - virt_libs:
db.prefs['virt_libs_hidden'] = list(hidden.intersection(virt_libs))
hidden = hidden.intersection(virt_libs)
db.prefs['virt_libs_hidden'] = list(hidden)
order = db.prefs['virt_libs_order']
while self.count():
self.removeTab(0)
current_lib = db.data.get_base_restriction_name()
if current_lib in hidden:
hidden.discard(current_lib)
db.prefs['virt_libs_hidden'] = list(hidden)
current_idx = all_idx = None
virt_libs = (set(virt_libs) - hidden) | {''}
order = {x:i for i, x in enumerate(order)}