diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-07-01 18:23:58 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-07-01 18:23:58 +0000 |
| commit | f492b1b9684844a45614eae55cc8b166f12520ba (patch) | |
| tree | 081b71b65c8628d91cf96788da5b293909a86b57 /src/qmmpui/normalcontainer.cpp | |
| parent | f0741d2dd30fbe3ba8990a078ceb2151ebab4f34 (diff) | |
| download | qmmp-f492b1b9684844a45614eae55cc8b166f12520ba.tar.gz qmmp-f492b1b9684844a45614eae55cc8b166f12520ba.tar.bz2 qmmp-f492b1b9684844a45614eae55cc8b166f12520ba.zip | |
fixed normal container
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5199 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/normalcontainer.cpp')
| -rw-r--r-- | src/qmmpui/normalcontainer.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/qmmpui/normalcontainer.cpp b/src/qmmpui/normalcontainer.cpp index b26b33d06..36e13fd46 100644 --- a/src/qmmpui/normalcontainer.cpp +++ b/src/qmmpui/normalcontainer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -33,15 +33,22 @@ void NormalContainer::addTracks(QList<PlayListTrack *> tracks) foreach (PlayListTrack *track, tracks) { m_items.append(track); + track->setTrackNumber(m_items.count() - 1); } } void NormalContainer::insertTrack(int index, PlayListTrack *track) { if(index >= 0 && index < m_items.count()) + { m_items.insert(index, track); + track->setTrackNumber(index); + } else + { m_items.append(track); + track->setTrackNumber(m_items.count() - 1); + } } void NormalContainer::replaceTracks(QList<PlayListTrack *> tracks) @@ -157,13 +164,16 @@ PlayListTrack *NormalContainer::findTrack(int number) const void NormalContainer::removeTrack(PlayListTrack *track) { - m_items.removeAll(track); + removeTracks(QList<PlayListTrack *> () << track); } void NormalContainer::removeTracks(QList<PlayListTrack *> tracks) { foreach(PlayListTrack *t, tracks) - removeTrack(t); + m_items.removeAll(t); + + for(int i = 0; i < m_items.count(); ++i) + m_items[i]->setTrackNumber(i); } bool NormalContainer::move(QList<int> indexes, int from, int to) @@ -176,7 +186,10 @@ bool NormalContainer::move(QList<int> indexes, int from, int to) break; else + { m_items.move(i,i + to - from); + swapTrackNumbers(&m_items,i,i + to - from); + } } } else @@ -186,7 +199,10 @@ bool NormalContainer::move(QList<int> indexes, int from, int to) if (indexes[i] + to - from >= m_items.count()) break; else + { m_items.move(indexes[i], indexes[i] + to - from); + swapTrackNumbers(&m_items,indexes[i], indexes[i] + to - from); + } } } return true; @@ -209,11 +225,17 @@ void NormalContainer::clear() void NormalContainer::reverseList() { for (int i = 0; i < m_items.size()/2; i++) + { m_items.swap(i, m_items.size() - i - 1); + swapTrackNumbers(&m_items, i, m_items.size() - i - 1); + } } void NormalContainer::randomizeList() { for (int i = 0; i < m_items.size(); i++) m_items.swap(qrand()%m_items.size(), qrand()%m_items.size()); + + for(int i = 0; i < m_items.count(); ++i) + m_items[i]->setTrackNumber(i); } |
