diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py index c0dd40326d..589e14cff2 100644 --- a/src/calibre/gui2/actions/__init__.py +++ b/src/calibre/gui2/actions/__init__.py @@ -145,7 +145,6 @@ class InterfaceAction(QObject): ans[candidate] = zf.read(candidate) return ans - def genesis(self): ''' Setup this plugin. Only called once during initialization. self.gui is diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index 6f4ca624cb..fd7959a30e 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' import os, shutil from functools import partial -from PyQt4.Qt import QMenu, Qt, QInputDialog +from PyQt4.Qt import QMenu, Qt, QInputDialog, QToolButton from calibre import isbytestring from calibre.constants import filesystem_encoding @@ -88,6 +88,9 @@ class ChooseLibraryAction(InterfaceAction): type=Qt.QueuedConnection) self.stats = LibraryUsageStats() + self.popup_type = (QToolButton.InstantPopup if len(self.stats.stats) > 1 else + QToolButton.MenuButtonPopup) + self.create_action(spec=(_('Switch/create library...'), 'lt.png', None, None), attr='action_choose') self.action_choose.triggered.connect(self.choose_library, @@ -123,6 +126,7 @@ class ChooseLibraryAction(InterfaceAction): type=Qt.QueuedConnection) self.choose_menu.addAction(ac) + self.rename_separator = self.choose_menu.addSeparator() self.maintenance_menu = QMenu(_('Library Maintenance')) @@ -172,6 +176,7 @@ class ChooseLibraryAction(InterfaceAction): return db = self.gui.library_view.model().db locations = list(self.stats.locations(db)) + for ac in self.switch_actions: ac.setVisible(False) self.quick_menu.clear() diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py index c73bb0d0fa..29c2cd4a7a 100644 --- a/src/calibre/gui2/layout.py +++ b/src/calibre/gui2/layout.py @@ -7,9 +7,9 @@ __docformat__ = 'restructuredtext en' from functools import partial -from PyQt4.Qt import QIcon, Qt, QWidget, QToolBar, QSize, \ - pyqtSignal, QToolButton, QMenu, \ - QObject, QVBoxLayout, QSizePolicy, QLabel, QHBoxLayout, QActionGroup +from PyQt4.Qt import (QIcon, Qt, QWidget, QToolBar, QSize, + pyqtSignal, QToolButton, QMenu, + QObject, QVBoxLayout, QSizePolicy, QLabel, QHBoxLayout, QActionGroup) from calibre.constants import __appname__