http://bugzilla.lyx.org/show_bug.cgi?id=2571
This patch from Hartmut has been ignored for too long. I've updated it and want to put it in branch and trunk. Objections? Jürgen
Index: src/frontends/qt4/QPrefs.cpp =================================================================== --- src/frontends/qt4/QPrefs.cpp (Revision 19223) +++ src/frontends/qt4/QPrefs.cpp (Arbeitskopie) @@ -534,6 +534,13 @@ || lc == Color::ignore) continue; lcolors_.push_back(lc); + } + std::vector<Color_color> const colors = frontend::getSortedColors(lcolors_); + vector<Color_color>::const_iterator cit = colors.begin(); + vector<Color_color>::const_iterator const end = colors.end(); + for (; cit != end; ++cit) + { + Color::color lc = *cit; // This is not a memory leak: /*QListWidgetItem * newItem =*/ new QListWidgetItem(QIcon(icon), toqstr(lcolor.getGUIName(lc)), lyxObjectsLW); Index: src/frontends/controllers/frontend_helpers.cpp =================================================================== --- src/frontends/controllers/frontend_helpers.cpp (Revision 19223) +++ src/frontends/controllers/frontend_helpers.cpp (Arbeitskopie) @@ -1113,6 +1113,16 @@ } }; + +class ColorSorter +{ +public: + bool operator()(const Color::color & lhs, + const Color::color & rhs) { + return lcolor.getGUIName(lhs) < lcolor.getGUIName(rhs); + } +}; + } // namespace anon @@ -1147,6 +1157,14 @@ return langs; } + +vector<Color_color> const getSortedColors(vector<Color_color> lcolors) +{ + // sort the colors + std::sort(lcolors.begin(), lcolors.end(), ColorSorter()); + return lcolors; +} + } // namespace frontend using support::addName; Index: src/frontends/controllers/frontend_helpers.h =================================================================== --- src/frontends/controllers/frontend_helpers.h (Revision 19223) +++ src/frontends/controllers/frontend_helpers.h (Arbeitskopie) @@ -229,6 +229,8 @@ * to the vector. */ std::vector<LanguagePair> const getLanguageData(bool character_dlg); +/// sort colors for the gui +std::vector<Color_color> const getSortedColors(std::vector<Color_color> lcolors); } // namespace frontend