From 8710712b3de552af387654722b95f4fb90afa066 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Tue, 14 Aug 2012 09:14:24 +0200 Subject: [PATCH] Fix 1036464 - exception when saving a search/replace when no saved search/replace had been opened previously --- src/calibre/gui2/dialogs/metadata_bulk.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 5c90e5dddd..31aa7f812b 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -529,6 +529,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): self.remove_button.clicked.connect(self.s_r_remove_query) self.queries = JSONConfig("search_replace_queries") + self.saved_search_name = '' self.query_field.addItem("") self.query_field_values = sorted([q for q in self.queries], key=sort_key) self.query_field.addItems(self.query_field_values) @@ -1034,11 +1035,16 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): self.queries.commit() def s_r_save_query(self, *args): - dex = self.query_field_values.index(self.saved_search_name) + names = [''] + names.extend(self.query_field_values) + try: + dex = names.index(self.saved_search_name) + except: + dex = 0 name = '' while not name: name, ok = QInputDialog.getItem(self, _('Save search/replace'), - _('Search/replace name:'), self.query_field_values, dex, True) + _('Search/replace name:'), names, dex, True) if not ok: return if not name: @@ -1086,6 +1092,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): def s_r_query_change(self, item_name): if not item_name: self.s_r_reset_query_fields() + self.saved_search_name = '' return item = self.queries.get(unicode(item_name), None) if item is None: