This commit is contained in:
Herwig Birke
2018-03-08 17:15:56 +01:00
parent 553d8cd9b0
commit 83080b71cd
6 changed files with 93 additions and 5 deletions
+58
View File
@@ -1,6 +1,59 @@
#include "common.h"
#include "ctrack.h"
class cTrackCompare
{
public:
cTrackCompare(qint32 sort) : m_sort(sort) {}
bool operator()(cTrack* lpFirst, cTrack* lpSecond)
{
qint16 t1 = 0;
qint16 t2 = 0;
if(!lpFirst->trackNumber().isEmpty())
{
if(lpFirst->trackNumber().contains("/"))
t1 = lpFirst->trackNumber().left(lpFirst->trackNumber().indexOf("/")).toInt();
else
t1 = lpFirst->trackNumber().toInt();
}
if(!lpSecond->trackNumber().isEmpty())
{
if(lpSecond->trackNumber().contains("/"))
t2 = lpSecond->trackNumber().left(lpSecond->trackNumber().indexOf("/")).toInt();
else
t2 = lpSecond->trackNumber().toInt();
}
if(m_sort & SORT_TRACK_ASC)
{
if(t1 < t2)
return(true);
else if(t1 > t2)
return(false);
else
return(false);
}
else if(m_sort & SORT_TRACK_DESC)
{
if(t1 > t2)
return(true);
else if(t1 < t2)
return(false);
else
return(false);
}
else
return(false);
}
private:
qint32 m_sort;
};
cTrack::cTrack(cAlbum* lpAlbum, const QString& szTitle, const QString &szTrackNumber, const QString& szPartOfSet, const QString& szBand, const QString& szComposer, const QDate& recordingTime) :
m_lpAlbum(lpAlbum),
m_szTitle(szTitle),
@@ -99,3 +152,8 @@ cTrack* cTrackList::add(cAlbum* lpAlbum, const QString& szTitle, const QString
append(lpTrackNew);
return(lpTrackNew);
}
void cTrackList::sort(qint32 sort)
{
std::sort(begin(), end(), cTrackCompare(sort));
}