aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/groupedcontainer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-10-19 10:18:33 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-10-19 10:18:33 +0000
commit24d72d28a2a3bacd68497fc9ba236995b2b90bdb (patch)
treec689befaa9f55ff064520fcdb61d3a0a9c81063b /src/qmmpui/groupedcontainer.cpp
parent176523a606494a1d8cfe7a692ee564785d1b2101 (diff)
downloadqmmp-24d72d28a2a3bacd68497fc9ba236995b2b90bdb.tar.gz
qmmp-24d72d28a2a3bacd68497fc9ba236995b2b90bdb.tar.bz2
qmmp-24d72d28a2a3bacd68497fc9ba236995b2b90bdb.zip
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4586 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/groupedcontainer.cpp')
-rw-r--r--src/qmmpui/groupedcontainer.cpp80
1 files changed, 50 insertions, 30 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp
index aebd9f22c..e412825a8 100644
--- a/src/qmmpui/groupedcontainer.cpp
+++ b/src/qmmpui/groupedcontainer.cpp
@@ -18,6 +18,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
+#include <QTime>
#include "playlistmodel.h"
#include "groupedcontainer_p.h"
@@ -35,37 +36,57 @@ void GroupedContainer::addGroup(PlayListGroup *group)
{
m_groups.append(group);
m_items.append(group);
- foreach (PlayListTrack *item, group->tracks())
+ foreach (PlayListTrack *item, group->trackList)
{
m_items.append(item);
}
updateIndex();
}
-void GroupedContainer::addTrack(PlayListTrack *track)
+void GroupedContainer::addTracks(QList<PlayListTrack *> tracks)
{
- if(!m_groups.isEmpty() && track->groupName() == m_groups.last()->formattedTitle())
+ QTime time;
+ time.restart();
+ //qDebug("%s", Q_FUNC_INFO);
+ PlayListGroup *group = m_groups.isEmpty() ? 0 : m_groups.last();
+ //m_items.clear();
+ foreach (PlayListTrack *track, tracks)
{
- PlayListGroup *group = m_groups.last();
- group->addTrack(track);
- m_items.insert(group->lastIndex + 1, track);
- updateIndex();
- return;
- }
- foreach(PlayListGroup *group, m_groups)
- {
- if(track->groupName() == group->formattedTitle())
+ if(!group || track->groupName() != group->formattedTitle())
{
- group->addTrack(track);
+ group = 0;
+ foreach(PlayListGroup *g, m_groups)
+ {
+ if(track->groupName() == g->formattedTitle())
+ {
+ group = g;
+ break;
+ }
+ }
+ }
+
+ if(group)
+ {
+ group->trackList.append(track);
m_items.insert(group->lastIndex + 1, track);
updateIndex();
- return;
+ continue;
}
- }
- PlayListGroup *group = new PlayListGroup(track->groupName());
- group->addTrack(track);
- addGroup(group);
+ group = new PlayListGroup(track->groupName());
+ group->trackList.append(track);
+ addGroup(group);
+ }
+ /*foreach(PlayListGroup *g, m_groups)
+ {
+ //m_groups.append(g);
+ m_items.append(g);
+ foreach (PlayListTrack *item, g->trackList)
+ {
+ m_items.append(item);
+ }
+ }*/
+ qDebug("%s-%d", Q_FUNC_INFO, time.elapsed());
}
void GroupedContainer::insertTrack(int index, PlayListTrack *track)
@@ -76,7 +97,7 @@ void GroupedContainer::insertTrack(int index, PlayListTrack *track)
if(track->groupName() == group->formattedTitle() &&
index > group->firstIndex && index <= group->lastIndex + 1)
{
- group->insertTrack(index - group->firstIndex - 1, track);
+ group->trackList.insert(index - group->firstIndex - 1, track);
m_items.insert(index, track);
updateIndex();
return;
@@ -192,7 +213,7 @@ PlayListTrack *GroupedContainer::findTrack(int number) const
{
if(number >= firstNumber && number < firstNumber + group->count())
{
- return group->tracks().at(number - firstNumber);
+ return group->trackList.at(number - firstNumber);
}
firstNumber += group->count();
}
@@ -224,7 +245,7 @@ void GroupedContainer::removeTrack(PlayListTrack *track)
{
if(group->contains(track))
{
- group->remove(track);
+ group->trackList.removeAll(track);
if(group->isEmpty())
{
m_groups.removeAll(group);
@@ -281,8 +302,8 @@ bool GroupedContainer::move(QList<int> indexes, int from, int to)
else
{
m_items.move(i,i + to - from);
- group->move(i - group->firstIndex - 1,
- i + to - from - group->firstIndex - 1);
+ group->trackList.move(i - group->firstIndex - 1,
+ i + to - from - group->firstIndex - 1);
}
}
}
@@ -295,8 +316,8 @@ bool GroupedContainer::move(QList<int> indexes, int from, int to)
else
{
m_items.move(indexes[i], indexes[i] + to - from);
- group->move(indexes[i] - group->firstIndex - 1,
- indexes[i] + to - from - group->firstIndex - 1);
+ group->trackList.move(indexes[i] - group->firstIndex - 1,
+ indexes[i] + to - from - group->firstIndex - 1);
}
}
}
@@ -308,7 +329,8 @@ QList<PlayListTrack *> GroupedContainer::takeAllTracks()
QList<PlayListTrack *> tracks;
foreach (PlayListGroup *g, m_groups)
{
- tracks.append(g->takeAll());
+ tracks.append(g->trackList);
+ g->trackList.clear();
}
clear();
return tracks;
@@ -357,11 +379,9 @@ void GroupedContainer::sort(int mode)
m_items.clear();
foreach (PlayListGroup *g, m_groups)
{
- QList<PlayListTrack *> tracks = g->takeAll();
- doSort(mode, tracks, m_reverted);
- g->addTracks(tracks);
+ doSort(mode, g->trackList, m_reverted);
m_items.append(g);
- foreach (PlayListTrack *t, tracks)
+ foreach (PlayListTrack *t, g->trackList)
{
m_items.append(t);
}