From e989b1bcd68957d43f6eef6d5b915c6d06fe1b22 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 25 May 2024 08:37:07 +0530 Subject: [PATCH] Fix #2067110 [Edit metadata in bulk does not preserve previously selected tab](https://bugs.launchpad.net/calibre/+bug/2067110) --- src/calibre/gui2/actions/edit_metadata.py | 2 +- src/calibre/gui2/dialogs/metadata_bulk.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index c2473bba35..1fa5d55777 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -534,7 +534,7 @@ class EditMetadataAction(InterfaceActionWithLibraryDrop): changed = False refresh_books = set(book_ids) try: - current_tab = 0 + current_tab = -1 while True: dialog = MetadataBulkDialog(self.gui, rows, self.gui.library_view.model(), current_tab, refresh_books) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 6bdcb215fd..82b85fd825 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -558,7 +558,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): _('Append to field'), ] - def __init__(self, window, rows, model, tab, refresh_books): + def __init__(self, window, rows, model, starting_tab, refresh_books): QDialog.__init__(self, window) self.setupUi(self) setup_status_actions(self.test_result) @@ -634,8 +634,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): 'This operation cannot be canceled or undone')) self.do_again = False self.restore_geometry(gprefs, 'bulk_metadata_window_geometry') - ct = gprefs.get('bulk_metadata_window_tab', 0) - self.central_widget.setCurrentIndex(ct) + self.languages.init_langs(self.db) self.languages.setEditText('') self.authors.setFocus(Qt.FocusReason.OtherFocusReason) @@ -650,7 +649,9 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): (self.button_clear_tags_rules, self.button_clear_authors_rules, self.button_clear_publishers_rules) )) self.update_transform_labels() - self.central_widget.setCurrentIndex(tab) + if starting_tab < 0: + starting_tab = gprefs.get('bulk_metadata_window_tab', 0) + self.central_widget.setCurrentIndex(starting_tab) self.exec() def update_transform_labels(self):