From b8366228fb3f952a66737dd40061d607d19f7e0e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 14 Sep 2022 12:33:18 +0530 Subject: [PATCH] Do not show the virtual libraries tab bar when no virtual libraries are present. See #1988609 ([Enhancement] VL Toolbar/Menu options) --- src/calibre/gui2/init.py | 10 +++++++--- src/calibre/gui2/search_restriction_mixin.py | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index c19f4a241c..cb25dad68f 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -400,7 +400,7 @@ class VLTabs(QTabBar): # {{{ self.currentChanged.connect(self.tab_changed) self.tabMoved.connect(self.tab_moved, type=Qt.ConnectionType.QueuedConnection) self.tabCloseRequested.connect(self.tab_close) - self.setVisible(gprefs['show_vl_tabs']) + self.update_visibility() self.next_action = a = QAction(self) a.triggered.connect(partial(self.next_tab, delta=1)), self.gui.addAction(a) self.previous_action = a = QAction(self) @@ -421,14 +421,17 @@ class VLTabs(QTabBar): # {{{ idx = (self.currentIndex() + delta) % self.count() self.setCurrentIndex(idx) + def update_visibility(self): + self.setVisible(gprefs['show_vl_tabs'] and self.count() > 1) + def enable_bar(self): gprefs['show_vl_tabs'] = True - self.setVisible(True) + self.update_visibility() self.gui.set_number_of_books_shown() def disable_bar(self): gprefs['show_vl_tabs'] = False - self.setVisible(False) + self.update_visibility() self.gui.set_number_of_books_shown() def lock_tab(self): @@ -515,6 +518,7 @@ class VLTabs(QTabBar): # {{{ # On some OS X machines (using native style) the tab button is # on the left pass + self.update_visibility() def update_current(self): self.rebuild() diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index 1d92905a54..6d4a9d29ed 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -397,11 +397,11 @@ class SearchRestrictionMixin: m.addMenu(a).setIcon(QIcon.ic('minus.png')) m.addAction(QIcon.ic('toc.png'), _('Quick select Virtual library'), self.choose_vl_triggerred) - if add_tabs_action: - if gprefs['show_vl_tabs']: - m.addAction(_('Hide Virtual library tabs'), self.vl_tabs.disable_bar) - else: - m.addAction(_('Show Virtual libraries as tabs'), self.vl_tabs.enable_bar) + if add_tabs_action: + if gprefs['show_vl_tabs']: + m.addAction(_('Hide Virtual library tabs'), self.vl_tabs.disable_bar) + else: + m.addAction(_('Show Virtual libraries as tabs'), self.vl_tabs.enable_bar) m.addSeparator()