From 20dc79168656ddb22c73180ccb06f8d7ddcfe03c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 26 May 2014 19:13:16 +0530 Subject: [PATCH] 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) --- src/calibre/gui2/init.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 2a626f784a..083b1a4cc5 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -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)}