external::TemplateManager::Templates::const_iterator i1, i2;
i1 = external::TemplateManager::get().getTemplates().begin();
i2 = external::TemplateManager::get().getTemplates().end();
+ QMap<QString, QString> localizedTemplates;
for (; i1 != i2; ++i1)
- externalCO->addItem(qt_(i1->second.guiName), toqstr(i1->second.lyxName));
- // Sort alphabetically by(localized) GUI name
- externalCO->model()->sort(0);
+ localizedTemplates.insert(qt_(i1->second.guiName), toqstr(i1->second.lyxName));
+ // Sort alphabetically by (localized) GUI name
+ QStringList keys = localizedTemplates.keys();
+ qSort(keys.begin(), keys.end(), SortLocaleAware);
+ for (QString & key : keys) {
+ QString const value = localizedTemplates[key];
+ externalCO->addItem(key, value);
+ }
// Fill the origins combo
for (size_t i = 0; i != sizeof(origins) / sizeof(origins[0]); ++i)
}
+bool SortLocaleAware(QString const & lhs, QString const & rhs)
+{
+ return QString::localeAwareCompare(lhs, rhs) < 0;
+}
+
+
bool ColorSorter(ColorCode lhs, ColorCode rhs)
{
return compare_no_case(lcolor.getGUIName(lhs), lcolor.getGUIName(rhs)) < 0;
*/
QString formatLocFPNumber(double d);
+/// Method to sort QStrings locale-aware (e.g. in combo widgets)
+bool SortLocaleAware(QString const & lhs, QString const & rhs);
+
/// Method to sort colors by GUI name in combo widgets
bool ColorSorter(ColorCode lhs, ColorCode rhs);