diff --git a/src/calibre/gui2/metadata/config.py b/src/calibre/gui2/metadata/config.py index 379a2985d9..4e08d48c69 100644 --- a/src/calibre/gui2/metadata/config.py +++ b/src/calibre/gui2/metadata/config.py @@ -13,6 +13,7 @@ from PyQt5.Qt import (QWidget, QGridLayout, QGroupBox, QListView, Qt, QSpinBox, QDoubleSpinBox, QCheckBox, QLineEdit, QComboBox, QLabel) from calibre.gui2.preferences.metadata_sources import FieldsModel as FM +from calibre.utils.icu import sort_key class FieldsModel(FM): # {{{ @@ -99,7 +100,9 @@ class ConfigWidget(QWidget): widget.setChecked(bool(val)) elif opt.type == 'choices': widget = QComboBox(self) - for key, label in opt.choices.iteritems(): + items = list(opt.choices.iteritems()) + items.sort(key=lambda (k, v): sort_key(v)) + for key, label in items: widget.addItem(label, (key)) idx = widget.findData((val)) widget.setCurrentIndex(idx) @@ -130,5 +133,3 @@ class ConfigWidget(QWidget): idx = w.currentIndex() val = unicode(w.itemData(idx) or '') self.plugin.prefs[w.opt.name] = val - -