From f588f586036310f19cd76d3e55600fb098fe045c Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 10 Jul 2015 13:55:06 +0200 Subject: [PATCH 1/3] Fix for #1473140 - Improvement/Feature Request: Tag Editor Change. Initial focus is given to the filter available tags box instead of the add tag box. --- src/calibre/gui2/dialogs/tag_editor.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/calibre/gui2/dialogs/tag_editor.py b/src/calibre/gui2/dialogs/tag_editor.py index 3481782b2e..f5ea385f73 100644 --- a/src/calibre/gui2/dialogs/tag_editor.py +++ b/src/calibre/gui2/dialogs/tag_editor.py @@ -73,6 +73,8 @@ class TagEditor(QDialog, Ui_TagEditor): self.available_filter_input.textChanged.connect(self.filter_tags) self.applied_filter_input.textChanged.connect(partial(self.filter_tags, which='applied_tags')) + self.available_filter_input.setFocus() + if islinux: self.available_tags.itemDoubleClicked.connect(self.apply_tags) else: From 3c68d52faeebd59b1fe0c2f729fed0d32e581912 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 10 Jul 2015 14:32:26 +0200 Subject: [PATCH 2/3] Fix #1467147 Rename search creates a new one instead --- src/calibre/gui2/dialogs/saved_search_editor.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/dialogs/saved_search_editor.py b/src/calibre/gui2/dialogs/saved_search_editor.py index 6d90766be7..63f3de2cc4 100644 --- a/src/calibre/gui2/dialogs/saved_search_editor.py +++ b/src/calibre/gui2/dialogs/saved_search_editor.py @@ -35,9 +35,12 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): self.select_search(initial_search) def populate_search_list(self): + self.search_name_box.blockSignals(True) self.search_name_box.clear() for name in sorted(self.searches.keys(), key=sort_key): self.search_name_box.addItem(name) + self.search_names = set([icu_lower(n) for n in self.searches.keys()]) + self.search_name_box.blockSignals(False) def sanitize_name(self): n = unicode(self.input_box.text()).strip().replace('\\', '') @@ -45,6 +48,7 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): return n def add_search(self): + self.save_current_search() search_name = self.sanitize_name() if search_name == '': return False @@ -72,6 +76,7 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): self.search_name_box.removeItem(self.search_name_box.currentIndex()) def rename_search(self): + self.save_current_search() new_search_name = self.sanitize_name() if new_search_name == '': return False @@ -101,11 +106,14 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): self.current_search_name = None self.search_text.setPlainText('') + def save_current_search(self): + if self.current_search_name: + self.searches[self.current_search_name] = unicode(self.search_text.toPlainText()) + def accept(self): from calibre.gui2.ui import get_gui db = get_gui().current_db - if self.current_search_name: - self.searches[self.current_search_name] = unicode(self.search_text.toPlainText()) + self.save_current_search() ss = {name:self.searches[name] for name in self.searches} db.saved_search_set_all(ss) QDialog.accept(self) From b2333c17733708852205df6c2772c630af59127e Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Mon, 13 Jul 2015 13:10:09 +0200 Subject: [PATCH 3/3] Tags editor: restore the focus to the last box typed in. --- src/calibre/gui2/dialogs/tag_editor.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/dialogs/tag_editor.py b/src/calibre/gui2/dialogs/tag_editor.py index f5ea385f73..6bc4e97c45 100644 --- a/src/calibre/gui2/dialogs/tag_editor.py +++ b/src/calibre/gui2/dialogs/tag_editor.py @@ -73,7 +73,11 @@ class TagEditor(QDialog, Ui_TagEditor): self.available_filter_input.textChanged.connect(self.filter_tags) self.applied_filter_input.textChanged.connect(partial(self.filter_tags, which='applied_tags')) - self.available_filter_input.setFocus() + # Restore the focus to the last input box used (typed into) + self.add_tag_input.textChanged.connect(partial(self.edit_box_changed, which="add_tag_input")) + self.available_filter_input.textChanged.connect(partial(self.edit_box_changed, which="available_filter_input")) + self.applied_filter_input.textChanged.connect(partial(self.edit_box_changed, which="applied_filter_input")) + getattr(self, gprefs.get('tag_editor_last_filter', 'add_tag_input')).setFocus() if islinux: self.available_tags.itemDoubleClicked.connect(self.apply_tags) @@ -85,6 +89,10 @@ class TagEditor(QDialog, Ui_TagEditor): if geom is not None: self.restoreGeometry(geom) + def edit_box_changed(self, which): + gprefs['tag_editor_last_filter'] = which + + def delete_tags(self, item=None): confirms, deletes = [], [] items = self.available_tags.selectedItems() if item is None else [item]