diff --git a/src/calibre/gui2/actions/catalog.py b/src/calibre/gui2/actions/catalog.py index 6ad18a1445..f7ad8f7af0 100644 --- a/src/calibre/gui2/actions/catalog.py +++ b/src/calibre/gui2/actions/catalog.py @@ -56,7 +56,7 @@ class GenerateCatalogAction(InterfaceAction): fmt = os.path.splitext(out)[1][1:].upper() job = self.gui.job_manager.run_job( self.Dispatcher(self.catalog_generated), func, args=args, - description=desc) + description=desc) job.catalog_file_path = out job.fmt = fmt job.catalog_sync, job.catalog_title = sync, title @@ -78,15 +78,16 @@ class GenerateCatalogAction(InterfaceAction): if job.failed: return self.gui.job_exception(job) - id = self.gui.library_view.model().add_catalog(job.catalog_file_path, job.catalog_title) - self.gui.library_view.model().beginResetModel(), self.gui.library_view.model().endResetModel() - if job.catalog_sync: - sync = dynamic.get('catalogs_to_be_synced', set([])) - sync.add(id) - dynamic.set('catalogs_to_be_synced', sync) + if dynamic.get('catalog_add_to_library', True): + id = self.gui.library_view.model().add_catalog(job.catalog_file_path, job.catalog_title) + self.gui.library_view.model().beginResetModel(), self.gui.library_view.model().endResetModel() + if job.catalog_sync: + sync = dynamic.get('catalogs_to_be_synced', set([])) + sync.add(id) + dynamic.set('catalogs_to_be_synced', sync) self.gui.status_bar.show_message(_('Catalog generated.'), 3000) self.gui.sync_catalogs() - if job.fmt not in {'EPUB','MOBI', 'AZW3'}: + if not dynamic.get('catalog_add_to_library', True) or job.fmt not in {'EPUB','MOBI', 'AZW3'}: export_dir = choose_dir(self.gui, _('Export Catalog Directory'), _('Select destination for %(title)s.%(fmt)s') % dict( title=job.catalog_title, fmt=job.fmt.lower())) @@ -96,7 +97,7 @@ class GenerateCatalogAction(InterfaceAction): try: shutil.copyfile(job.catalog_file_path, destination) except EnvironmentError as err: - if getattr(err, 'errno', None) == errno.EACCES: # Permission denied + if getattr(err, 'errno', None) == errno.EACCES: # Permission denied import traceback error_dialog(self, _('Permission denied'), _('Could not open %s. Is it being used by another' @@ -104,4 +105,3 @@ class GenerateCatalogAction(InterfaceAction): show=True) return raise - diff --git a/src/calibre/gui2/dialogs/catalog.py b/src/calibre/gui2/dialogs/catalog.py index 35eff5ee06..ba44114e29 100644 --- a/src/calibre/gui2/dialogs/catalog.py +++ b/src/calibre/gui2/dialogs/catalog.py @@ -114,6 +114,7 @@ class Catalog(ResizableDialog, Ui_Dialog): if self.sync.isEnabled(): self.sync.setChecked(dynamic.get('catalog_sync_to_device', True)) + self.add_to_library.setChecked(dynamic.get('catalog_add_to_library', True)) self.format.currentIndexChanged.connect(self.show_plugin_tab) self.buttonBox.button(self.buttonBox.Apply).clicked.connect(self.apply) @@ -169,6 +170,7 @@ class Catalog(ResizableDialog, Ui_Dialog): self.catalog_sync = bool(self.sync.isChecked()) dynamic.set('catalog_sync_to_device', self.catalog_sync) dynamic.set('catalog_window_geom', bytearray(self.saveGeometry())) + dynamic.set('catalog_add_to_library', self.add_to_library.isChecked()) def apply(self, *args): # Store current values without building catalog diff --git a/src/calibre/gui2/dialogs/catalog.ui b/src/calibre/gui2/dialogs/catalog.ui index 3af36393b2..18ba9495b4 100644 --- a/src/calibre/gui2/dialogs/catalog.ui +++ b/src/calibre/gui2/dialogs/catalog.ui @@ -96,7 +96,7 @@ - Catalog &format: + Catalo&g format: format @@ -122,7 +122,7 @@ - + Qt::Vertical @@ -142,6 +142,18 @@ + + + + Add the catalog to your calibre library after it is generated. +Note that if you disable adding of the catalog to the library +sending of the catalog todevice will not work. + + + &Add catalog to library + + +