aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/groupedcontainer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-10-26 16:41:19 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-10-26 16:41:19 +0000
commitb45e369d2b4872ba46446913991b6ae5dd9ad414 (patch)
tree5b862a4a08c82b98c420ebed49af7dcb829bba5c /src/qmmpui/groupedcontainer.cpp
parentd718a3a8ef64424364af747e39c48b8605ee21ad (diff)
downloadqmmp-b45e369d2b4872ba46446913991b6ae5dd9ad414.tar.gz
qmmp-b45e369d2b4872ba46446913991b6ae5dd9ad414.tar.bz2
qmmp-b45e369d2b4872ba46446913991b6ae5dd9ad414.zip
playlist container optimization
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4597 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/groupedcontainer.cpp')
-rw-r--r--src/qmmpui/groupedcontainer.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp
index 5091a276f..e98cf88f6 100644
--- a/src/qmmpui/groupedcontainer.cpp
+++ b/src/qmmpui/groupedcontainer.cpp
@@ -32,10 +32,35 @@ GroupedContainer::~GroupedContainer()
clear();
}
-void GroupedContainer::addGroup(PlayListGroup *group)
+void GroupedContainer::addTrack(PlayListTrack *track)
{
+ int firstIndex = 0, lastIndex = 0;
+ //insert if possible
+ for(int i = 0; i < m_groups.count(); ++i)
+ {
+ if(i == 0)
+ {
+ firstIndex = 0;
+ lastIndex = m_groups[i]->count();
+ }
+ else
+ {
+ firstIndex = lastIndex + 1;
+ lastIndex = firstIndex + m_groups[i]->count();
+ }
+
+ if(track->groupName() == m_groups[i]->formattedTitle())
+ {
+ m_groups[i]->trackList.append(track);
+ m_items.insert(lastIndex + 1, track);
+ return;
+ }
+ }
+ PlayListGroup *group = new PlayListGroup(track->groupName());
+ group->trackList.append(track);
m_groups.append(group);
- m_update = true;
+ m_items.append(group);
+ m_items.append(track);
}
void GroupedContainer::addTracks(QList<PlayListTrack *> tracks)
@@ -60,7 +85,8 @@ void GroupedContainer::addTracks(QList<PlayListTrack *> tracks)
if(!group)
{
group = new PlayListGroup(track->groupName());
- addGroup(group);
+ m_groups.append(group);
+ m_update = true;
}
group->trackList.append(track);