--- kdebase/kcontrol/kdm/kdm-appear.h-- 2003-02-20 18:29:40.000000000 +0100 +++ kdebase/kcontrol/kdm/kdm-appear.h 2003-02-20 18:31:31.000000000 +0100 @@ -15,7 +15,7 @@ along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #ifndef __KDMAPPEAR_H__ @@ -67,13 +67,14 @@ protected: void iconLoaderDragEnterEvent(QDragEnterEvent *event); void iconLoaderDropEvent(QDropEvent *event); bool setLogo(QString logo); + static QStringList sortStringList(QStringList list); private slots: void slotAreaRadioClicked(int id); void slotPosRadioClicked(int id); void slotLogoButtonClicked(); void changed(); - + private: enum { KdmNone, KdmClock, KdmLogo }; QLabel *logoLabel; --- kdebase/kcontrol/kdm/kdm-appear.cpp-- 2003-02-20 18:29:37.000000000 +0100 +++ kdebase/kcontrol/kdm/kdm-appear.cpp 2003-02-20 18:31:34.000000000 +0100 @@ -192,7 +192,10 @@ KDMAppearanceWidget::KDMAppearanceWidget hglay->setColStretch(3, 1); guicombo = new KComboBox(false, hlp); - guicombo->insertStringList(QStyleFactory::keys()); + QStringList list = QStyleFactory::keys(); + list = KDMAppearanceWidget::sortStringList(list); + guicombo->insertStringList(list); + label = new QLabel(guicombo, i18n("GUI s&tyle:"), hlp); connect(guicombo, SIGNAL(activated(int)), SLOT(changed())); hglay->addWidget(label, 0, 0); @@ -301,7 +304,8 @@ void KDMAppearanceWidget::loadColorSchem QStringList list = KGlobal::dirs()->findAllResources("data", "kdisplay/color-schemes/*.kcsrc", false, true); - combo->insertItem("Default"); + QStringList tmp; + tmp.append( "Default"); for (QStringList::ConstIterator it = list.begin(); it != list.end(); it++) { KSimpleConfig *config = new KSimpleConfig(*it, true); config->setGroup("Color Scheme"); @@ -309,10 +313,11 @@ void KDMAppearanceWidget::loadColorSchem QString str; if (!(str = config->readEntry("Name")).isEmpty() || !(str = config->readEntry("name")).isEmpty()) - combo->insertItem(str); - + tmp.append( str ); delete config; } + tmp = KDMAppearanceWidget::sortStringList(tmp); + combo->insertStringList(tmp); } bool KDMAppearanceWidget::setLogo(QString logo) @@ -530,4 +535,21 @@ void KDMAppearanceWidget::changed() emit changed(true); } +QStringList KDMAppearanceWidget::sortStringList(QStringList list) +{ + QStringList lst; + QStringList tmp(list); + QMap<QString, QString> map; + for ( QStringList::Iterator it = tmp.begin(); it != tmp.end(); ++it ) + { + lst<<(*it).lower(); + map.insert((*it).lower(), *it); + } + lst.sort(); + tmp.clear(); + for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) + tmp<<map.find(*it).data(); + return tmp; +} + #include "kdm-appear.moc"