aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/groupedcontainer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-01-09 12:01:22 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-01-09 12:01:22 +0000
commitebd7f9bc697973366de8a6bf7265051e825e0680 (patch)
tree1feb9df1c5fe3493e9aa1dd8f5d6233a38ae9d3c /src/qmmpui/groupedcontainer.cpp
parentbc7ad688c646afd2a89e5c5ff58696f2df2c8605 (diff)
downloadqmmp-ebd7f9bc697973366de8a6bf7265051e825e0680.tar.gz
qmmp-ebd7f9bc697973366de8a6bf7265051e825e0680.tar.bz2
qmmp-ebd7f9bc697973366de8a6bf7265051e825e0680.zip
renaming experimental branch
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4675 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/groupedcontainer.cpp')
-rw-r--r--src/qmmpui/groupedcontainer.cpp98
1 files changed, 39 insertions, 59 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp
index e98cf88f6..c6628a845 100644
--- a/src/qmmpui/groupedcontainer.cpp
+++ b/src/qmmpui/groupedcontainer.cpp
@@ -23,7 +23,6 @@
GroupedContainer::GroupedContainer()
{
- m_reverted = false;
m_update = true;
}
@@ -65,31 +64,26 @@ void GroupedContainer::addTrack(PlayListTrack *track)
void GroupedContainer::addTracks(QList<PlayListTrack *> tracks)
{
- PlayListGroup *group = m_groups.isEmpty() ? 0 : m_groups.last();
+ bool found = false;
- foreach (PlayListTrack *track, tracks)
+ for(int i = 0; i < tracks.count(); ++i)
{
- if(!group || track->groupName() != group->formattedTitle())
+ found = false;
+ for(int j = m_groups.count() - 1; j >= 0; --j)
{
- group = 0;
- foreach(PlayListGroup *g, m_groups)
+ if(m_groups.at(j)->formattedTitle() == tracks.at(i)->groupName())
{
- if(track->groupName() == g->formattedTitle())
- {
- group = g;
- break;
- }
+ found = true;
+ m_groups.at(j)->trackList.append(tracks[i]);
+ break;
}
}
- if(!group)
- {
- group = new PlayListGroup(track->groupName());
- m_groups.append(group);
- m_update = true;
- }
+ if(found)
+ continue;
- group->trackList.append(track);
+ m_groups << new PlayListGroup(tracks.at(i)->groupName());
+ m_groups.last()->trackList.append(tracks.at(i));
}
m_update = true;
}
@@ -123,11 +117,31 @@ void GroupedContainer::insertTrack(int index, PlayListTrack *track)
addTrack(track);
}
+void GroupedContainer::replaceTracks(QList<PlayListTrack *> tracks)
+{
+ foreach (PlayListGroup *g, m_groups)
+ {
+ g->trackList.clear();
+ }
+ clear();
+ addTracks(tracks);
+}
+
QList<PlayListGroup *> GroupedContainer::groups() const
{
return m_groups;
}
+QList<PlayListTrack *> GroupedContainer::tracks() const
+{
+ QList<PlayListTrack *> trackList;
+ for(int i = 0; i < m_groups.count(); ++i)
+ {
+ trackList.append(m_groups[i]->trackList);
+ }
+ return trackList;
+}
+
QList<PlayListItem *> GroupedContainer::items() const
{
updateCache();
@@ -389,55 +403,21 @@ void GroupedContainer::reverseList()
void GroupedContainer::randomizeList()
{
- QList<PlayListTrack *> tracks = takeAllTracks();
-
- for (int i = 0; i < tracks.size(); i++)
- tracks.swap(qrand()%tracks.size(),qrand()%tracks.size());
-
- addTracks(tracks);
-}
-
-void GroupedContainer::sort(int mode)
-{
- if(mode == PlayListModel::ARTIST || mode == PlayListModel::ALBUM
- || mode == PlayListModel::DATE || mode == PlayListModel::GROUP)
- {
- QList<PlayListTrack *> tracks = takeAllTracks();
- doSort(mode, tracks, m_reverted);
- addTracks(tracks);
- }
- else
+ for(int i = 0; i < m_groups.count(); ++i)
{
- foreach (PlayListGroup *g, m_groups)
+ for (int j = 0; j < m_groups[i]->trackList.size(); j++)
{
- doSort(mode, g->trackList, m_reverted);
+ m_groups[i]->trackList.swap(qrand() % m_groups[i]->trackList.size(),
+ qrand() % m_groups[i]->trackList.size());
}
- m_update = true;
}
- m_reverted = !m_reverted;
-}
-void GroupedContainer::sortSelection(int mode)
-{
- QList<PlayListTrack *> tracks = takeAllTracks();
- QList<PlayListTrack *> selected_tracks;
- QList<int> selected_indexes;
- for(int i = 0; i < tracks.count(); ++i)
+ for(int i = 0; i < m_groups.count(); ++i)
{
- if(tracks[i]->isSelected())
- {
- selected_tracks.append(tracks[i]);
- selected_indexes.append(i);
- }
+ m_groups.swap(qrand() % m_groups.size(), qrand() % m_groups.size());
}
- doSort(mode, selected_tracks, m_reverted);
-
- for (int i = 0; i < selected_indexes.count(); i++)
- tracks.replace(selected_indexes[i], selected_tracks[i]);
- addTracks(tracks);
-
- m_reverted = !m_reverted;
+ m_update = true;
}
void GroupedContainer::updateCache() const