aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/playlistmodel.cpp28
-rw-r--r--src/qmmpui/playlistmodel.h18
2 files changed, 38 insertions, 8 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;
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index 18d751894..37581a21a 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -277,14 +277,16 @@ public:
*/
enum SortMode
{
- TITLE, /*!< by title */
- ALBUM, /*!< by album */
- DISCNUMBER, /*!< by discnumber */
- ARTIST, /*!< by artist */
- FILENAME, /*!< by file name */
- PATH_AND_FILENAME, /*!< by path and file name */
- DATE, /*!< by date */
- TRACK /*!< by track */
+ TITLE, /*!< by title */
+ ALBUM, /*!< by album */
+ DISCNUMBER, /*!< by discnumber */
+ ARTIST, /*!< by artist */
+ FILENAME, /*!< by file name */
+ PATH_AND_FILENAME, /*!< by path and file name */
+ DATE, /*!< by date */
+ TRACK, /*!< by track */
+ FILE_CREATION_DATE, /*!< by file creation date */
+ FILE_MODIFICATION_DATE /*!< by file modification date */
};
signals: