aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-07-01 18:23:58 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-07-01 18:23:58 +0000
commitf492b1b9684844a45614eae55cc8b166f12520ba (patch)
tree081b71b65c8628d91cf96788da5b293909a86b57 /src
parentf0741d2dd30fbe3ba8990a078ceb2151ebab4f34 (diff)
downloadqmmp-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.cpp11
-rw-r--r--src/qmmpui/groupedcontainer_p.h1
-rw-r--r--src/qmmpui/normalcontainer.cpp28
-rw-r--r--src/qmmpui/playlistcontainer.cpp7
-rw-r--r--src/qmmpui/playlistcontainer_p.h5
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