/*
   Copyright 2005-2009 Last.fm Ltd. 
      - Primarily authored by Max Howell, Jono Cole and Doug Mansell

   This file is part of the Last.fm Desktop Application Suite.

   lastfm-desktop is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   lastfm-desktop is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with lastfm-desktop.  If not, see <http://www.gnu.org/licenses/>.
*/
#include <QMap>
#include <QStringList>


namespace Qt
{
	QStringList sort( QStringList input, Qt::CaseSensitivity s )
	{
		if (sensitivity = Qt::CaseSensitive)
			return input.sort();
		
	    // This cumbersome bit of code here is how the Qt docs suggests you sort
	    // a string list case-insensitively
	    QMap<QString, QString> map;
	    foreach (QString s, input)
	        map.insert( s.toLower(), s );

	    QStringList output;
	    QMapIterator<QString, QString> i( map );
	    while (i.hasNext())
	        output += i.next().value();

	    return output;
	}	
}
