mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Show the languages currently used at the top of the drop down list of languages
This commit is contained in:
parent
4b0a076a7f
commit
a617d772e4
@ -335,6 +335,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
|
|||||||
geom = gprefs.get('bulk_metadata_window_geometry', None)
|
geom = gprefs.get('bulk_metadata_window_geometry', None)
|
||||||
if geom is not None:
|
if geom is not None:
|
||||||
self.restoreGeometry(bytes(geom))
|
self.restoreGeometry(bytes(geom))
|
||||||
|
self.languages.init_langs(self.db)
|
||||||
self.languages.setEditText('')
|
self.languages.setEditText('')
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ from calibre.utils.icu import sort_key, lower
|
|||||||
|
|
||||||
class LanguagesEdit(MultiCompleteComboBox):
|
class LanguagesEdit(MultiCompleteComboBox):
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None, db=None):
|
||||||
MultiCompleteComboBox.__init__(self, parent)
|
MultiCompleteComboBox.__init__(self, parent)
|
||||||
|
|
||||||
self.setSizeAdjustPolicy(self.AdjustToMinimumContentsLengthWithIcon)
|
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_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.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()}
|
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(),
|
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)
|
self.update_items_cache(all_items)
|
||||||
for item in all_items:
|
for item in all_items:
|
||||||
self.addItem(item)
|
self.addItem(item)
|
||||||
|
@ -233,7 +233,8 @@ class CompleteDelegate(QStyledItemDelegate): # {{{
|
|||||||
class LanguagesDelegate(QStyledItemDelegate): # {{{
|
class LanguagesDelegate(QStyledItemDelegate): # {{{
|
||||||
|
|
||||||
def createEditor(self, parent, option, index):
|
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()
|
ct = index.data(Qt.DisplayRole).toString()
|
||||||
editor.setEditText(ct)
|
editor.setEditText(ct)
|
||||||
editor.lineEdit().selectAll()
|
editor.lineEdit().selectAll()
|
||||||
|
@ -1163,6 +1163,7 @@ class LanguagesEdit(LE): # {{{
|
|||||||
return property(fget=fget, fset=fset)
|
return property(fget=fget, fset=fset)
|
||||||
|
|
||||||
def initialize(self, db, id_):
|
def initialize(self, db, id_):
|
||||||
|
self.init_langs(db)
|
||||||
lc = []
|
lc = []
|
||||||
langs = db.languages(id_, index_is_id=True)
|
langs = db.languages(id_, index_is_id=True)
|
||||||
if langs:
|
if langs:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user