From a380227d242f34bbe42a8189bd8b46dfa02f923f Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sat, 31 Oct 2020 12:52:44 +0000 Subject: [PATCH] Bug 1901435]: Capitalized tags in the Category editor is not saved. Fixed by not offering the case change operations unless the item is being edited. This prevents unwelcome interactions between the widget's editor management (undo etc) and changing the case. --- src/calibre/gui2/dialogs/tag_list_editor.py | 27 +++++++++++---------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/calibre/gui2/dialogs/tag_list_editor.py b/src/calibre/gui2/dialogs/tag_list_editor.py index 0e56510a42..c6b8ab7641 100644 --- a/src/calibre/gui2/dialogs/tag_list_editor.py +++ b/src/calibre/gui2/dialogs/tag_list_editor.py @@ -296,19 +296,20 @@ class TagListEditor(QDialog, Ui_TagListEditor): ca.triggered.connect(partial(self.search_for_books, item)) if disable_copy_paste_search: ca.setEnabled(False) - m.addSeparator() - case_menu = QMenu(_('Change case')) - action_upper_case = case_menu.addAction(_('Upper case')) - action_lower_case = case_menu.addAction(_('Lower case')) - action_swap_case = case_menu.addAction(_('Swap case')) - action_title_case = case_menu.addAction(_('Title case')) - action_capitalize = case_menu.addAction(_('Capitalize')) - action_upper_case.triggered.connect(partial(self.do_case, icu_upper)) - action_lower_case.triggered.connect(partial(self.do_case, icu_lower)) - action_swap_case.triggered.connect(partial(self.do_case, self.swap_case)) - action_title_case.triggered.connect(partial(self.do_case, titlecase)) - action_capitalize.triggered.connect(partial(self.do_case, capitalize)) - m.addMenu(case_menu) + if self.table.state() == self.table.EditingState: + m.addSeparator() + case_menu = QMenu(_('Change case')) + action_upper_case = case_menu.addAction(_('Upper case')) + action_lower_case = case_menu.addAction(_('Lower case')) + action_swap_case = case_menu.addAction(_('Swap case')) + action_title_case = case_menu.addAction(_('Title case')) + action_capitalize = case_menu.addAction(_('Capitalize')) + action_upper_case.triggered.connect(partial(self.do_case, icu_upper)) + action_lower_case.triggered.connect(partial(self.do_case, icu_lower)) + action_swap_case.triggered.connect(partial(self.do_case, self.swap_case)) + action_title_case.triggered.connect(partial(self.do_case, titlecase)) + action_capitalize.triggered.connect(partial(self.do_case, capitalize)) + m.addMenu(case_menu) m.exec_(self.table.mapToGlobal(point)) def search_for_books(self, item):