From 26b17f7efe8658975bd8aa70de110002b815b638 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 22 Sep 2022 21:45:39 +0530 Subject: [PATCH] Fix OPF not being updated when batching renames --- src/calibre/gui2/tweak_book/file_list.py | 26 +++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 0777801f5b..6658ea0b77 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -286,21 +286,23 @@ class FileList(QTreeWidget, OpenWithHandler): self.itemActivated.connect(self.item_double_clicked) def possible_rename_requested(self, index, old, new): - self.pending_renames[old] = new - QTimer.singleShot(10, self.dispatch_pending_renames) - item = self.itemFromIndex(index) - item.setText(0, new) + if old != new: + self.pending_renames[old] = new + QTimer.singleShot(10, self.dispatch_pending_renames) + item = self.itemFromIndex(index) + item.setText(0, new) def dispatch_pending_renames(self): - if self.state() != QAbstractItemView.State.EditingState: - pr, self.pending_renames = self.pending_renames, {} - if len(pr) == 1: - old, new = tuple(pr.items())[0] - self.rename_requested.emit(old, new) + if self.pending_renames: + if self.state() != QAbstractItemView.State.EditingState: + pr, self.pending_renames = self.pending_renames, {} + if len(pr) == 1: + old, new = tuple(pr.items())[0] + self.rename_requested.emit(old, new) + else: + self.bulk_rename_requested.emit(pr) else: - self.bulk_rename_requested.emit(pr) - else: - QTimer.singleShot(10, self.dispatch_pending_renames) + QTimer.singleShot(10, self.dispatch_pending_renames) def mimeTypes(self): ans = QTreeWidget.mimeTypes(self)