aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistmodel.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-01-05 11:01:05 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-01-05 11:01:05 +0000
commita04aa013db3f96d065961982cc3b5db3cdcd6d29 (patch)
treeaed3bd676148314648c292e499b9c97990b442e2 /src/qmmpui/playlistmodel.cpp
parent08600f858ecd8c83265fbf33e270080d326bffcd (diff)
downloadqmmp-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.cpp28
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;