aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/playlistcontainer.cpp')
-rw-r--r--src/qmmpui/playlistcontainer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp
index cb774726c..1ca4d79dc 100644
--- a/src/qmmpui/playlistcontainer.cpp
+++ b/src/qmmpui/playlistcontainer.cpp
@@ -140,6 +140,17 @@ static bool _fileModificationDateGreaterComparator(PlayListTrack* s1,PlayListTra
return QFileInfo(s1->value(Qmmp::URL)).lastModified() > QFileInfo(s2->value(Qmmp::URL)).lastModified();
}
+//by group
+static bool _groupLessComparator(PlayListTrack* s1,PlayListTrack* s2)
+{
+ return QString::localeAwareCompare (s1->groupName(), s2->groupName()) < 0;
+}
+
+static bool _groupGreaterComparator(PlayListTrack* s1,PlayListTrack* s2)
+{
+ return QString::localeAwareCompare (s1->groupName(), s2->groupName()) > 0;
+}
+
void PlayListContainer::doSort(int sort_mode, QList<PlayListTrack*>& list_to_sort, bool reverted)
{
QList<PlayListTrack*>::iterator begin;
@@ -193,6 +204,10 @@ void PlayListContainer::doSort(int sort_mode, QList<PlayListTrack*>& list_to_sor
compareLessFunc = _fileModificationDateLessComparator;
compareGreaterFunc = _fileModificationDateGreaterComparator;
break;
+ case PlayListModel::GROUP:
+ compareLessFunc = _groupLessComparator;
+ compareGreaterFunc = _groupGreaterComparator;
+ break;
default:
compareLessFunc = _titleLessComparator;
compareGreaterFunc = _titleGreaterComparator;