@@ -349,20 +349,45 @@ static bool songsSortArAl(const Song &a, const Song &b)
|
||||
// return a.lastModified>b.lastModified;
|
||||
//}
|
||||
|
||||
static QStringList prefixesToIngore=QStringList() << QLatin1String("The");
|
||||
|
||||
QStringList LibraryDb::ignorePrefixes()
|
||||
{
|
||||
return prefixesToIngore;
|
||||
}
|
||||
|
||||
void LibraryDb::setIgnorePrefixes(const QStringList &prefixes)
|
||||
{
|
||||
prefixesToIngore=prefixes;
|
||||
}
|
||||
|
||||
static QString ignorePrefix(const QString &str)
|
||||
{
|
||||
foreach (const QString &p, prefixesToIngore) {
|
||||
if (str.startsWith(p+QLatin1Char(' '))) {
|
||||
return str.mid(p.length()+1);
|
||||
}
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
static QString sortString(const QString &str)
|
||||
{
|
||||
QString sort=ignorePrefix(str);
|
||||
|
||||
if (sort.isEmpty()) {
|
||||
sort=str;
|
||||
}
|
||||
sort=sort.remove('.');
|
||||
return sort==str ? QString() : sort;
|
||||
}
|
||||
|
||||
static QString artistSort(const Song &s)
|
||||
{
|
||||
if (!s.artistSortString().isEmpty()) {
|
||||
return s.artistSortString();
|
||||
}
|
||||
const QString &albumArtist=s.albumArtist();
|
||||
QString sort;
|
||||
if (albumArtist.startsWith("The ")) {
|
||||
sort=albumArtist.mid(4);
|
||||
} else {
|
||||
sort=albumArtist;
|
||||
}
|
||||
sort=sort.remove('.');
|
||||
return sort==albumArtist ? QString() : sort;
|
||||
return sortString(s.albumArtist());
|
||||
}
|
||||
|
||||
static QString albumSort(const Song &s)
|
||||
@@ -370,14 +395,7 @@ static QString albumSort(const Song &s)
|
||||
if (!s.albumSort().isEmpty()) {
|
||||
return s.albumSort();
|
||||
}
|
||||
QString sort;
|
||||
if (s.album.startsWith("The ")) {
|
||||
sort=s.album.mid(4);
|
||||
} else {
|
||||
sort=s.album;
|
||||
}
|
||||
sort=sort.remove('.');
|
||||
return sort==s.album ? QString() : sort;
|
||||
return sortString(s.album);
|
||||
}
|
||||
|
||||
// Code taken from Clementine's LibraryQuery
|
||||
|
||||
Reference in New Issue
Block a user