diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py index 8b31132779..1f1068ef1e 100644 --- a/src/calibre/gui2/actions/__init__.py +++ b/src/calibre/gui2/actions/__init__.py @@ -143,6 +143,7 @@ class InterfaceAction(QObject): self.gui.addAction(self.qaction) self.gui.addAction(self.menuless_qaction) self.genesis() + self.location_selected('library') @property def unique_name(self): diff --git a/src/calibre/gui2/actions/add_to_library.py b/src/calibre/gui2/actions/add_to_library.py index e91d1e131f..9fe4da3b83 100644 --- a/src/calibre/gui2/actions/add_to_library.py +++ b/src/calibre/gui2/actions/add_to_library.py @@ -23,6 +23,7 @@ class AddToLibraryAction(InterfaceAction): def location_selected(self, loc): enabled = loc != 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def add_books_to_library(self, *args): self.gui.iactions['Add Books'].add_books_from_device( diff --git a/src/calibre/gui2/actions/catalog.py b/src/calibre/gui2/actions/catalog.py index 2b6203f0d5..d0e78ab9c6 100644 --- a/src/calibre/gui2/actions/catalog.py +++ b/src/calibre/gui2/actions/catalog.py @@ -29,6 +29,7 @@ class GenerateCatalogAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def generate_catalog(self): rows = self.gui.library_view.selectionModel().selectedRows() diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index a03b3c42de..ed0a98a04b 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -401,6 +401,7 @@ class ChooseLibraryAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def rename_requested(self, name, location): LibraryDatabase = db_class() diff --git a/src/calibre/gui2/actions/convert.py b/src/calibre/gui2/actions/convert.py index 5424298399..310582865f 100644 --- a/src/calibre/gui2/actions/convert.py +++ b/src/calibre/gui2/actions/convert.py @@ -69,6 +69,9 @@ class ConvertAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) + for action in list(self.convert_menu.actions()): + action.setEnabled(enabled) def auto_convert(self, book_ids, on_card, format): previous = self.gui.library_view.currentIndex() diff --git a/src/calibre/gui2/actions/copy_to_library.py b/src/calibre/gui2/actions/copy_to_library.py index 23b6e9e36c..1ab88865c8 100644 --- a/src/calibre/gui2/actions/copy_to_library.py +++ b/src/calibre/gui2/actions/copy_to_library.py @@ -432,6 +432,7 @@ class CopyToLibraryAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def build_menus(self): self.menu.clear() diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py index e14aac2e70..61b967d22b 100644 --- a/src/calibre/gui2/actions/device.py +++ b/src/calibre/gui2/actions/device.py @@ -163,6 +163,7 @@ class SendToDeviceAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def do_sync(self, *args): self.gui._sync_action_triggered() @@ -189,6 +190,7 @@ class ConnectShareAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def set_state(self, device_connected, device): self.share_conn_menu.set_state(device_connected, device) diff --git a/src/calibre/gui2/actions/edit_collections.py b/src/calibre/gui2/actions/edit_collections.py index fbeac1878b..58b4c08f53 100644 --- a/src/calibre/gui2/actions/edit_collections.py +++ b/src/calibre/gui2/actions/edit_collections.py @@ -23,6 +23,7 @@ class EditCollectionsAction(InterfaceAction): def location_selected(self, loc): enabled = loc != 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def edit_collections(self, *args): oncard = None diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 79c4fbceff..3e1096ef21 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -77,7 +77,7 @@ class EditMetadataAction(InterfaceAction): shortcut='Ctrl+D') self.metadata_menu = md - mb = QMenu() + self.metamerge_menu = mb = QMenu() cm2 = partial(self.create_menu_action, mb) cm2('merge delete', _('Merge into first selected book - delete others'), triggered=self.merge_books) @@ -102,7 +102,9 @@ class EditMetadataAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) - self.action_merge.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) + for action in self.metamerge_menu.actions() + self.metadata_menu.actions(): + action.setEnabled(enabled) def copy_metadata(self): rows = self.gui.library_view.selectionModel().selectedRows() diff --git a/src/calibre/gui2/actions/fetch_news.py b/src/calibre/gui2/actions/fetch_news.py index ae577b46b5..28b623f9b7 100644 --- a/src/calibre/gui2/actions/fetch_news.py +++ b/src/calibre/gui2/actions/fetch_news.py @@ -23,6 +23,7 @@ class FetchNewsAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def genesis(self): self.conversion_jobs = {} diff --git a/src/calibre/gui2/actions/mark_books.py b/src/calibre/gui2/actions/mark_books.py index 3de994a6bd..40f1fed756 100644 --- a/src/calibre/gui2/actions/mark_books.py +++ b/src/calibre/gui2/actions/mark_books.py @@ -95,6 +95,9 @@ class MarkBooksAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) + for action in self.menu.actions(): + action.setEnabled(enabled) def toggle_selected(self): book_ids = self._get_selected_ids() diff --git a/src/calibre/gui2/actions/match_books.py b/src/calibre/gui2/actions/match_books.py index 7b9d62b15d..f347cbc678 100644 --- a/src/calibre/gui2/actions/match_books.py +++ b/src/calibre/gui2/actions/match_books.py @@ -27,6 +27,7 @@ class MatchBookAction(InterfaceAction): def location_selected(self, loc): enabled = loc != 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def match_books_in_library(self, *args): view = self.gui.current_view() diff --git a/src/calibre/gui2/actions/open.py b/src/calibre/gui2/actions/open.py index 1aa274b9cb..02786349c7 100644 --- a/src/calibre/gui2/actions/open.py +++ b/src/calibre/gui2/actions/open.py @@ -23,5 +23,6 @@ class OpenFolderAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) diff --git a/src/calibre/gui2/actions/polish.py b/src/calibre/gui2/actions/polish.py index 77aa393636..ea4b8c8fa4 100644 --- a/src/calibre/gui2/actions/polish.py +++ b/src/calibre/gui2/actions/polish.py @@ -435,6 +435,7 @@ class PolishAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def get_books_for_polishing(self): rows = [r.row() for r in diff --git a/src/calibre/gui2/actions/random.py b/src/calibre/gui2/actions/random.py index 3e49a0a7a5..ffc1b639c8 100644 --- a/src/calibre/gui2/actions/random.py +++ b/src/calibre/gui2/actions/random.py @@ -25,6 +25,7 @@ class PickRandomAction(InterfaceAction): def location_selected(self, loc): enabled = loc == 'library' self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def pick_random(self): pick = random.randint(0, self.gui.library_view.model().rowCount(None)) diff --git a/src/calibre/gui2/actions/sort.py b/src/calibre/gui2/actions/sort.py index 067c692380..8d0159d40f 100644 --- a/src/calibre/gui2/actions/sort.py +++ b/src/calibre/gui2/actions/sort.py @@ -41,7 +41,9 @@ class SortByAction(InterfaceAction): self.qaction.menu().aboutToShow.connect(self.about_to_show) def location_selected(self, loc): - self.qaction.setEnabled(loc == 'library') + enabled = loc == 'library' + self.qaction.setEnabled(enabled) + self.menuless_qaction.setEnabled(enabled) def about_to_show(self): self.update_menu()