diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 2fd2135956..7b88a943bb 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -110,6 +110,7 @@ defs['bd_overlay_cover_size'] = False defs['tags_browser_category_icons'] = {} defs['cover_browser_reflections'] = True defs['extra_row_spacing'] = 0 +defs['refresh_book_list_on_bulk_edit'] = True del defs # }}} diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 729de33c7f..4817db953c 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -10,7 +10,7 @@ from functools import partial from PyQt4.Qt import QMenu, QModelIndex, QTimer, QIcon -from calibre.gui2 import error_dialog, Dispatcher, question_dialog +from calibre.gui2 import error_dialog, Dispatcher, question_dialog, gprefs from calibre.gui2.dialogs.metadata_bulk import MetadataBulkDialog from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.device_category_editor import DeviceCategoryEditor @@ -366,8 +366,11 @@ class EditMetadataAction(InterfaceAction): self.gui.tags_view.blockSignals(False) if changed: m = self.gui.library_view.model() - m.refresh(reset=False) - m.research() + if gprefs['refresh_book_list_on_bulk_edit']: + m.refresh(reset=False) + m.research() + else: + m.refresh_ids(book_ids) self.gui.tags_view.recount() if self.gui.cover_flow: self.gui.cover_flow.dataChanged() diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 84ca9135f0..0e4b2a1572 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -317,6 +317,8 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): Ui_MetadataBulkDialog.__init__(self) self.model = model self.db = model.db + self.refresh_book_list.setChecked(gprefs['refresh_book_list_on_bulk_edit']) + self.refresh_book_list.toggled.connect(self.save_refresh_booklist) self.ids = [self.db.id(r) for r in rows] self.box_title.setText('
' +
_('Editing meta information for %d books') %
@@ -380,6 +382,9 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
self.authors.setFocus(Qt.OtherFocusReason)
self.exec_()
+ def save_refresh_booklist(self, *args):
+ gprefs['refresh_book_list_on_bulk_edit'] = bool(self.refresh_book_list.isChecked())
+
def save_state(self, *args):
gprefs['bulk_metadata_window_geometry'] = \
bytearray(self.saveGeometry())
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index b03f3e8e94..2b48e635be 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -45,7 +45,7 @@