diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-01-05 11:01:05 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-01-05 11:01:05 +0000 |
| commit | a04aa013db3f96d065961982cc3b5db3cdcd6d29 (patch) | |
| tree | aed3bd676148314648c292e499b9c97990b442e2 /src/qmmpui/playlistmodel.cpp | |
| parent | 08600f858ecd8c83265fbf33e270080d326bffcd (diff) | |
| download | qmmp-a04aa013db3f96d065961982cc3b5db3cdcd6d29.tar.gz qmmp-a04aa013db3f96d065961982cc3b5db3cdcd6d29.tar.bz2 qmmp-a04aa013db3f96d065961982cc3b5db3cdcd6d29.zip | |
added sorting by file creation date (Closes issue 564)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3127 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistmodel.cpp')
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 71bf2f771..0ff3b17c2 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -28,6 +28,7 @@ #include <QTimer> #include <QBuffer> #include <QMetaType> +#include <QDateTime> #include <time.h> #include <qmmp/metadatamanager.h> #include "playlistparser.h" @@ -725,7 +726,26 @@ static bool _trackGreaterComparator(PlayListItem* s1,PlayListItem* s2) { return s1->value(Qmmp::TRACK).toInt() > s2->value(Qmmp::TRACK).toInt(); } +//by file creation date +static bool _fileCreationDateLessComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QFileInfo(s1->value(Qmmp::URL)).created() < QFileInfo(s2->value(Qmmp::URL)).created(); +} +static bool _fileCreationDateGreaterComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QFileInfo(s1->value(Qmmp::URL)).created() > QFileInfo(s2->value(Qmmp::URL)).created(); +} +//by file modification date +static bool _fileModificationDateLessComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QFileInfo(s1->value(Qmmp::URL)).lastModified() < QFileInfo(s2->value(Qmmp::URL)).lastModified(); +} + +static bool _fileModificationDateGreaterComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QFileInfo(s1->value(Qmmp::URL)).lastModified() > QFileInfo(s2->value(Qmmp::URL)).lastModified(); +} // This is main sort method void PlayListModel::doSort(int sort_mode,QList<PlayListItem*>& list_to_sort) { @@ -773,6 +793,14 @@ void PlayListModel::doSort(int sort_mode,QList<PlayListItem*>& list_to_sort) compareLessFunc = _trackLessComparator; compareGreaterFunc = _trackGreaterComparator; break; + case FILE_CREATION_DATE: + compareLessFunc = _fileCreationDateLessComparator; + compareGreaterFunc = _fileCreationDateGreaterComparator; + break; + case FILE_MODIFICATION_DATE: + compareLessFunc = _fileModificationDateLessComparator; + compareGreaterFunc = _fileModificationDateGreaterComparator; + break; default: compareLessFunc = _titleLessComparator; compareGreaterFunc = _titleGreaterComparator; |
