mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Tag Editor: Place the keyboard focus on the last edited field. Fixes #1473140 [Improvement/Feature Request: Tag Editor Change](https://bugs.launchpad.net/calibre/+bug/1473140)
Manage saved searches: Make the behavior of the renames search button more intuitive. Fixes #1467147 [Rename search creates a new one instead](https://bugs.launchpad.net/calibre/+bug/1467147) Merge branch 'master' of https://github.com/cbhaley/calibre
This commit is contained in:
commit
38028aa0d3
@ -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)
|
||||
|
@ -73,6 +73,12 @@ 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'))
|
||||
|
||||
# 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)
|
||||
else:
|
||||
@ -83,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]
|
||||
|
Loading…
x
Reference in New Issue
Block a user