diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-23 08:12:25 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-23 08:12:25 +0000 |
| commit | 73b5f5312a00236f264403e995d268641212b61f (patch) | |
| tree | ba26fdf486ac4e8797d81c50f7c8c2dea592c42e /src/qmmpui/playlistcontainer.cpp | |
| parent | b0c1e410bc00722617659647f2a05a0084228444 (diff) | |
| download | qmmp-73b5f5312a00236f264403e995d268641212b61f.tar.gz qmmp-73b5f5312a00236f264403e995d268641212b61f.tar.bz2 qmmp-73b5f5312a00236f264403e995d268641212b61f.zip | |
improved sorting implementation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3648 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistcontainer.cpp')
| -rw-r--r-- | src/qmmpui/playlistcontainer.cpp | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp index 0952b2e9c..cb774726c 100644 --- a/src/qmmpui/playlistcontainer.cpp +++ b/src/qmmpui/playlistcontainer.cpp @@ -30,34 +30,6 @@ void PlayListContainer::addTracks(QList<PlayListTrack *> tracks) addTrack(t); } -void PlayListContainer::sort(int mode) -{ - QList<PlayListTrack *> tracks = takeAllTracks(); - doSort(mode, tracks); - 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 @@ -168,7 +140,7 @@ static bool _fileModificationDateGreaterComparator(PlayListTrack* s1,PlayListTra return QFileInfo(s1->value(Qmmp::URL)).lastModified() > QFileInfo(s2->value(Qmmp::URL)).lastModified(); } -void PlayListContainer::doSort(int sort_mode, QList<PlayListTrack*>& list_to_sort) +void PlayListContainer::doSort(int sort_mode, QList<PlayListTrack*>& list_to_sort, bool reverted) { QList<PlayListTrack*>::iterator begin; QList<PlayListTrack*>::iterator end; @@ -226,17 +198,10 @@ void PlayListContainer::doSort(int sort_mode, QList<PlayListTrack*>& list_to_sor compareGreaterFunc = _titleGreaterComparator; } - static bool sorted_asc = false; - if (!sorted_asc) - { - qStableSort(begin,end,compareLessFunc); - sorted_asc = true; - } - else - { + if(reverted) qStableSort(begin,end,compareGreaterFunc); - sorted_asc = false; - } + else + qStableSort(begin,end,compareLessFunc); } ////=============== THE END OF SORT IMPLEMENTATION =======================//// |
