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 | |
| 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')
| -rw-r--r-- | src/qmmpui/groupedcontainer.cpp | 11 | ||||
| -rw-r--r-- | src/qmmpui/groupedcontainer_p.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/normalcontainer.cpp | 28 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer.cpp | 7 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer_p.h | 5 |
5 files changed, 38 insertions, 14 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp index 1c3568c08..4ffaa9e71 100644 --- a/src/qmmpui/groupedcontainer.cpp +++ b/src/qmmpui/groupedcontainer.cpp @@ -336,7 +336,7 @@ bool GroupedContainer::move(QList<int> indexes, int from, int to) else { m_items.move(i,i + to - from); - swapTrackNumbers(i,i + to - from); + swapTrackNumbers(&m_items,i,i + to - from); group->trackList.move(i - firstIndex - 1, i + to - from - firstIndex - 1); } @@ -351,7 +351,7 @@ bool GroupedContainer::move(QList<int> indexes, int from, int to) else { m_items.move(indexes[i], indexes[i] + to - from); - swapTrackNumbers(indexes[i], indexes[i] + to - from); + swapTrackNumbers(&m_items,indexes[i], indexes[i] + to - from); group->trackList.move(indexes[i] - firstIndex - 1, indexes[i] + to - from - firstIndex - 1); } @@ -410,13 +410,6 @@ void GroupedContainer::randomizeList() m_update = true; } -void GroupedContainer::swapTrackNumbers(int index1, int index2) -{ - int number = m_items.at(index1)->trackNumber(); - m_items.at(index1)->setTrackNumber(m_items.at(index2)->trackNumber()); - m_items.at(index2)->setTrackNumber(number); -} - void GroupedContainer::updateCache() const { if(!m_update) diff --git a/src/qmmpui/groupedcontainer_p.h b/src/qmmpui/groupedcontainer_p.h index 0f9c61a5b..373311d9d 100644 --- a/src/qmmpui/groupedcontainer_p.h +++ b/src/qmmpui/groupedcontainer_p.h @@ -65,7 +65,6 @@ public: void randomizeList(); private: - void swapTrackNumbers(int index1, int index2); void updateCache() const; QList<PlayListGroup *> m_groups; 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); } diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp index c7aaf3482..d57310f1a 100644 --- a/src/qmmpui/playlistcontainer.cpp +++ b/src/qmmpui/playlistcontainer.cpp @@ -28,3 +28,10 @@ void PlayListContainer::addTrack(PlayListTrack *track) { addTracks(QList<PlayListTrack *> () << track); } + +void PlayListContainer::swapTrackNumbers(QList<PlayListItem *> *container, int index1, int index2) +{ + int number = container->at(index1)->trackNumber(); + container->at(index1)->setTrackNumber(container->at(index2)->trackNumber()); + container->at(index2)->setTrackNumber(number); +} diff --git a/src/qmmpui/playlistcontainer_p.h b/src/qmmpui/playlistcontainer_p.h index 351a3b30f..5cdc281e7 100644 --- a/src/qmmpui/playlistcontainer_p.h +++ b/src/qmmpui/playlistcontainer_p.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013-2014 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 * @@ -67,6 +67,9 @@ public: virtual void reverseList() = 0; virtual void randomizeList() = 0; + +protected: + void swapTrackNumbers(QList<PlayListItem *> *container, int index1, int index2); }; #endif // PLAYLISTCONTAINER_P_H |
