aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistcontainer.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-14 09:59:14 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-14 09:59:14 +0000
commit2e689e667c8f4a53b9147ee3f54189a955acbc29 (patch)
tree3bd98ca7307d62050409d61e376010ea146cdfeb /src/qmmpui/playlistcontainer.cpp
parent3860a6037874458f9c3baf4f53ba32b1fcb462ab (diff)
downloadqmmp-2e689e667c8f4a53b9147ee3f54189a955acbc29.tar.gz
qmmp-2e689e667c8f4a53b9147ee3f54189a955acbc29.tar.bz2
qmmp-2e689e667c8f4a53b9147ee3f54189a955acbc29.zip
added normal (w/o groups) playlist container
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3597 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistcontainer.cpp')
-rw-r--r--src/qmmpui/playlistcontainer.cpp278
1 files changed, 0 insertions, 278 deletions
diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp
deleted file mode 100644
index bfd2c8457..000000000
--- a/src/qmmpui/playlistcontainer.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2013 by Ilya Kotov *
- * forkotov02@hotmail.ru *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
- ***************************************************************************/
-
-#include "playlistcontainer_p.h"
-
-PlayListContainer::PlayListContainer()
-{
- qDebug("%s", Q_FUNC_INFO);
-}
-
-void PlayListContainer::addGroup(PlayListGroup *group)
-{
- m_groups.append(group);
- m_items.append(group);
- foreach (PlayListTrack *item, *group->tracks())
- {
- m_items.append(item);
- }
- updateIndex();
-}
-
-void PlayListContainer::addTrack(PlayListTrack *track)
-{
- if(!m_groups.isEmpty() && track->groupName() == m_groups.last()->formattedTitle())
- {
- 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())
- {
- group->addTrack(track);
- m_items.insert(group->lastIndex + 1, track);
- updateIndex();
- return;
- }
- }
-
- PlayListGroup *group = new PlayListGroup(track->groupName());
- group->addTrack(track);
- addGroup(group);
-}
-
-QList<PlayListGroup *> PlayListContainer::groups()
-{
- return m_groups;
-}
-
-QList<PlayListItem *> PlayListContainer::items() const
-{
- return m_items;
-}
-
-int PlayListContainer::count() const
-{
- return m_items.count();
-}
-
-int PlayListContainer::trackCount() const
-{
- return m_items.count() - m_groups.count();
-}
-
-QList<PlayListItem *> PlayListContainer::mid(int pos, int count) const
-{
- return m_items.mid(pos, count);
-}
-
-bool PlayListContainer::isEmpty() const
-{
- return m_items.isEmpty();
-}
-
-bool PlayListContainer::isSelected(int index) const
-{
- if (0 <= index && index < m_items.count())
- return m_items.at(index)->isSelected();
- return false;
-}
-
-void PlayListContainer::setSelected(int index, bool selected)
-{
- if (0 <= index && index < m_items.count())// && !m_items.at(index)->isGroup())
- m_items.at(index)->setSelected(selected);
-}
-
-void PlayListContainer::clearSelection()
-{
- foreach (PlayListItem *item, m_items)
- {
- item->setSelected(false);
- }
-}
-
-int PlayListContainer::indexOf(PlayListItem *item) const
-{
- return m_items.indexOf(item);
-}
-
-PlayListItem *PlayListContainer::item(int index) const
-{
- if(index >= count() || index < 0)
- {
- qWarning("PlayListItem: index is out of range");
- return 0;
- }
- return m_items.at(index);
-}
-
-PlayListTrack *PlayListContainer::track(int index) const
-{
- PlayListItem *i = item(index);
- if(!i || i->isGroup())
- return 0;
- return dynamic_cast<PlayListTrack *> (i);
-}
-
-bool PlayListContainer::contains(PlayListItem *item) const
-{
- return m_items.contains(item);
-}
-
-int PlayListContainer::numberOfTrack(int index) const
-{
- for(int i = 0; i < m_groups.count(); ++i)
- {
- if(index >= m_groups[i]->firstIndex && index <= m_groups[i]->lastIndex)
- {
- return index - (i+1);
- }
- }
- return -1;
-}
-
-void PlayListContainer::removeTrack(int index)
-{
- PlayListTrack *t = track(index);
- if(t)
- {
- removeTrack(t);
- if (t->flag() == PlayListTrack::FREE)
- {
- delete t;
- }
- else if (t->flag() == PlayListTrack::EDITING)
- {
- t->setFlag(PlayListTrack::SCHEDULED_FOR_DELETION);
- }
- }
-}
-
-void PlayListContainer::removeTrack(PlayListTrack *track)
-{
- m_items.removeAll(track);
-
- foreach(PlayListGroup *group, m_groups)
- {
- if(group->contains(track))
- {
- group->remove(track);
- if(group->isEmpty())
- {
- m_groups.removeAll(group);
- m_items.removeAll(group);
- delete group;
- }
- updateIndex();
- return;
- }
- }
-}
-
-void PlayListContainer::removeTracks(QList<PlayListTrack *> tracks)
-{
- foreach(PlayListTrack *t, tracks)
- removeTrack(t);
-}
-
-bool PlayListContainer::move(QList<int> indexes, int from, int to)
-{
- PlayListGroup *group = 0;
-
- foreach (PlayListGroup *g, m_groups)
- {
- if(from > g->firstIndex && from <= g->lastIndex &&
- to > g->firstIndex && to <= g->lastIndex)
- {
- group = g;
- break;
- }
- }
-
- if(!group)
- return false;
-
- foreach (int i, indexes)
- {
- if(i <= group->firstIndex || i > group->lastIndex)
- return false;
- }
-
- if (from > to)
- {
- foreach(int i, indexes)
- {
- if (i + to - from < 0)
- break;
- else
- {
- m_items.move(i,i + to - from);
- group->move(i - group->firstIndex - 1,
- i + to - from - group->firstIndex - 1);
- }
- }
- }
- else
- {
- for (int i = indexes.count() - 1; i >= 0; i--)
- {
- if (indexes[i] + to - from >= m_items.count())
- break;
- else
- {
- m_items.move(indexes[i], indexes[i] + to - from);
- group->move(indexes[i] - group->firstIndex - 1,
- indexes[i] + to - from - group->firstIndex - 1);
- }
- }
- }
- return true;
-}
-
-void PlayListContainer::clear()
-{
- while(!m_groups.isEmpty())
- {
- delete m_groups.takeFirst();
- }
- m_items.clear();
-}
-
-void PlayListContainer::updateIndex()
-{
- for(int i = 0; i < m_groups.count(); ++i)
- {
- if(i == 0)
- {
- m_groups[i]->firstIndex = 0;
- m_groups[i]->lastIndex = m_groups[i]->count();
- }
- else
- {
- m_groups[i]->firstIndex = m_groups[i-1]->lastIndex + 1;
- m_groups[i]->lastIndex = m_groups[i]->firstIndex + m_groups[i]->count();
- }
- }
-}