diff options
Diffstat (limited to 'src/qmmpui/playlistcontainer.cpp')
| -rw-r--r-- | src/qmmpui/playlistcontainer.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp index db7990a36..0952b2e9c 100644 --- a/src/qmmpui/playlistcontainer.cpp +++ b/src/qmmpui/playlistcontainer.cpp @@ -20,6 +20,7 @@ #include <QFileInfo> #include <QDateTime> +#include <QtAlgorithms> #include "playlistmodel.h" #include "playlistcontainer_p.h" @@ -36,6 +37,27 @@ void PlayListContainer::sort(int mode) addTracks(tracks); } +void PlayListContainer::sortSelection(int mode) +{ + QList<PlayListTrack *> tracks = takeAllTracks(); + QList<PlayListTrack *> selected_tracks; + QList<int> selected_indexes; + for(int i = 0; i < tracks.count(); ++i) + { + if(tracks[i]->isSelected()) + { + selected_tracks.append(tracks[i]); + selected_indexes.append(i); + } + } + doSort(mode, selected_tracks); + + for (int i = 0; i < selected_indexes.count(); i++) + tracks.replace(selected_indexes[i], selected_tracks[i]); + + addTracks(tracks); +} + ////===============THE BEGINNING OF SORT IMPLEMENTATION =======================//// // First we'll implement bundle of static compare procedures |
