Switch to using a list of genres and checking for membership in there to avoid repeated values.

Based on a patch from Xavier Duret.

BUG:141679


git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@648998 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
This commit is contained in:
Scott Wheeler 2007-04-01 20:54:13 +00:00
parent 3e36746dbb
commit 76304a1356

View File

@ -141,10 +141,9 @@ String ID3v2::Tag::genre() const
StringList fields = f->fieldList();
String genreString;
bool hasNumber = false;
StringList genres;
for(StringList::ConstIterator it = fields.begin(); it != fields.end(); ++it) {
for(StringList::Iterator it = fields.begin(); it != fields.end(); ++it) {
bool isNumber = true;
@ -155,22 +154,17 @@ String ID3v2::Tag::genre() const
isNumber = *charIt >= '0' && *charIt <= '9';
}
if(!genreString.isEmpty())
genreString.append(' ');
if(isNumber) {
int number = (*it).toInt();
if(number >= 0 && number <= 255) {
hasNumber = true;
genreString.append(ID3v1::genre(number));
}
}
else {
genreString.append(*it);
if(number >= 0 && number <= 255)
*it = ID3v1::genre(number);
}
if(std::find(genres.begin(), genres.end(), *it) == genres.end())
genres.append(*it);
}
return genreString;
return genres.toString();
}
TagLib::uint ID3v2::Tag::year() const