From b45e369d2b4872ba46446913991b6ae5dd9ad414 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 26 Oct 2014 16:41:19 +0000 Subject: playlist container optimization git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4597 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/groupedcontainer.cpp | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'src/qmmpui/groupedcontainer.cpp') 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 tracks) @@ -60,7 +85,8 @@ void GroupedContainer::addTracks(QList tracks) if(!group) { group = new PlayListGroup(track->groupName()); - addGroup(group); + m_groups.append(group); + m_update = true; } group->trackList.append(track); -- cgit v1.2.3-13-gbd6f