Show the languages currently used at the top of the drop down list of languages

This commit is contained in:
Kovid Goyal 2011-08-25 12:14:13 -06:00
parent 4b0a076a7f
commit a617d772e4
4 changed files with 11 additions and 3 deletions

View File

@ -335,6 +335,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
geom = gprefs.get('bulk_metadata_window_geometry', None)
if geom is not None:
self.restoreGeometry(bytes(geom))
self.languages.init_langs(self.db)
self.languages.setEditText('')
self.exec_()

View File

@ -13,7 +13,7 @@ from calibre.utils.icu import sort_key, lower
class LanguagesEdit(MultiCompleteComboBox):
def __init__(self, parent=None):
def __init__(self, parent=None, db=None):
MultiCompleteComboBox.__init__(self, parent)
self.setSizeAdjustPolicy(self.AdjustToMinimumContentsLengthWithIcon)
@ -23,9 +23,14 @@ class LanguagesEdit(MultiCompleteComboBox):
self.comma_map = {k:k.replace(',', '|') for k in self.names_with_commas}
self.comma_rmap = {v:k for k, v in self.comma_map.iteritems()}
self._rmap = {lower(v):k for k,v in self._lang_map.iteritems()}
if db is not None:
self.init_langs(db)
def init_langs(self, db):
pmap = {self._lang_map.get(x[1], x[1]):1 for x in
db.get_languages_with_ids()}
all_items = sorted(self._lang_map.itervalues(),
key=sort_key)
key=lambda x: (-pmap.get(x, 0), sort_key(x)))
self.update_items_cache(all_items)
for item in all_items:
self.addItem(item)

View File

@ -233,7 +233,8 @@ class CompleteDelegate(QStyledItemDelegate): # {{{
class LanguagesDelegate(QStyledItemDelegate): # {{{
def createEditor(self, parent, option, index):
editor = LanguagesEdit(parent)
editor = LanguagesEdit(parent=parent)
editor.init_langs(index.model().db)
ct = index.data(Qt.DisplayRole).toString()
editor.setEditText(ct)
editor.lineEdit().selectAll()

View File

@ -1163,6 +1163,7 @@ class LanguagesEdit(LE): # {{{
return property(fget=fget, fset=fset)
def initialize(self, db, id_):
self.init_langs(db)
lc = []
langs = db.languages(id_, index_is_id=True)
if langs: