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
+
+
+