diff options
Diffstat (limited to 'src/qmmpui/normalcontainer.cpp')
| -rw-r--r-- | src/qmmpui/normalcontainer.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/qmmpui/normalcontainer.cpp b/src/qmmpui/normalcontainer.cpp index 7267b09e6..9a939f83b 100644 --- a/src/qmmpui/normalcontainer.cpp +++ b/src/qmmpui/normalcontainer.cpp @@ -22,6 +22,7 @@ NormalContainer::NormalContainer() { + m_reverted = false; } NormalContainer::~NormalContainer() @@ -195,3 +196,33 @@ void NormalContainer::randomizeList() for (int i = 0; i < m_items.size(); i++) m_items.swap(qrand()%m_items.size(), qrand()%m_items.size()); } + +void NormalContainer::sort(int mode) +{ + QList<PlayListTrack *> tracks = takeAllTracks(); + doSort(mode, tracks, m_reverted); + addTracks(tracks); + m_reverted = !m_reverted; +} + +void NormalContainer::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, m_reverted); + + for (int i = 0; i < selected_indexes.count(); i++) + tracks.replace(selected_indexes[i], selected_tracks[i]); + + addTracks(tracks); + m_reverted = !m_reverted; +} |
