aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/normalcontainer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-23 08:12:25 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-23 08:12:25 +0000
commit73b5f5312a00236f264403e995d268641212b61f (patch)
treeba26fdf486ac4e8797d81c50f7c8c2dea592c42e /src/qmmpui/normalcontainer.cpp
parentb0c1e410bc00722617659647f2a05a0084228444 (diff)
downloadqmmp-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/normalcontainer.cpp')
-rw-r--r--src/qmmpui/normalcontainer.cpp31
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;
+}