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)
|
self.select_search(initial_search)
|
||||||
|
|
||||||
def populate_search_list(self):
|
def populate_search_list(self):
|
||||||
|
self.search_name_box.blockSignals(True)
|
||||||
self.search_name_box.clear()
|
self.search_name_box.clear()
|
||||||
for name in sorted(self.searches.keys(), key=sort_key):
|
for name in sorted(self.searches.keys(), key=sort_key):
|
||||||
self.search_name_box.addItem(name)
|
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):
|
def sanitize_name(self):
|
||||||
n = unicode(self.input_box.text()).strip().replace('\\', '')
|
n = unicode(self.input_box.text()).strip().replace('\\', '')
|
||||||
@ -45,6 +48,7 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor):
|
|||||||
return n
|
return n
|
||||||
|
|
||||||
def add_search(self):
|
def add_search(self):
|
||||||
|
self.save_current_search()
|
||||||
search_name = self.sanitize_name()
|
search_name = self.sanitize_name()
|
||||||
if search_name == '':
|
if search_name == '':
|
||||||
return False
|
return False
|
||||||
@ -72,6 +76,7 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor):
|
|||||||
self.search_name_box.removeItem(self.search_name_box.currentIndex())
|
self.search_name_box.removeItem(self.search_name_box.currentIndex())
|
||||||
|
|
||||||
def rename_search(self):
|
def rename_search(self):
|
||||||
|
self.save_current_search()
|
||||||
new_search_name = self.sanitize_name()
|
new_search_name = self.sanitize_name()
|
||||||
if new_search_name == '':
|
if new_search_name == '':
|
||||||
return False
|
return False
|
||||||
@ -101,11 +106,14 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor):
|
|||||||
self.current_search_name = None
|
self.current_search_name = None
|
||||||
self.search_text.setPlainText('')
|
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):
|
def accept(self):
|
||||||
from calibre.gui2.ui import get_gui
|
from calibre.gui2.ui import get_gui
|
||||||
db = get_gui().current_db
|
db = get_gui().current_db
|
||||||
if self.current_search_name:
|
self.save_current_search()
|
||||||
self.searches[self.current_search_name] = unicode(self.search_text.toPlainText())
|
|
||||||
ss = {name:self.searches[name] for name in self.searches}
|
ss = {name:self.searches[name] for name in self.searches}
|
||||||
db.saved_search_set_all(ss)
|
db.saved_search_set_all(ss)
|
||||||
QDialog.accept(self)
|
QDialog.accept(self)
|
||||||
|
@ -73,6 +73,12 @@ class TagEditor(QDialog, Ui_TagEditor):
|
|||||||
self.available_filter_input.textChanged.connect(self.filter_tags)
|
self.available_filter_input.textChanged.connect(self.filter_tags)
|
||||||
self.applied_filter_input.textChanged.connect(partial(self.filter_tags, which='applied_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:
|
if islinux:
|
||||||
self.available_tags.itemDoubleClicked.connect(self.apply_tags)
|
self.available_tags.itemDoubleClicked.connect(self.apply_tags)
|
||||||
else:
|
else:
|
||||||
@ -83,6 +89,10 @@ class TagEditor(QDialog, Ui_TagEditor):
|
|||||||
if geom is not None:
|
if geom is not None:
|
||||||
self.restoreGeometry(geom)
|
self.restoreGeometry(geom)
|
||||||
|
|
||||||
|
def edit_box_changed(self, which):
|
||||||
|
gprefs['tag_editor_last_filter'] = which
|
||||||
|
|
||||||
|
|
||||||
def delete_tags(self, item=None):
|
def delete_tags(self, item=None):
|
||||||
confirms, deletes = [], []
|
confirms, deletes = [], []
|
||||||
items = self.available_tags.selectedItems() if item is None else [item]
|
items = self.available_tags.selectedItems() if item is None else [item]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user