From 0030c696269cc2e8095795f438d3eb805423b213 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 6 Mar 2017 10:33:08 +0530 Subject: [PATCH] Sort items in choices combobox --- src/calibre/gui2/metadata/config.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 - -