aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/groupedcontainer.cpp18
-rw-r--r--src/qmmpui/groupedcontainer_p.h5
-rw-r--r--src/qmmpui/normalcontainer.cpp11
-rw-r--r--src/qmmpui/normalcontainer_p.h3
-rw-r--r--src/qmmpui/playlistcontainer_p.h5
-rw-r--r--src/qmmpui/playlistmodel.cpp5
-rw-r--r--src/qmmpui/playlistmodel.h2
7 files changed, 41 insertions, 8 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp
index 4c2849cd0..aebd9f22c 100644
--- a/src/qmmpui/groupedcontainer.cpp
+++ b/src/qmmpui/groupedcontainer.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2013 by Ilya Kotov *
+ * Copyright (C) 2013-2014 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -86,7 +86,7 @@ void GroupedContainer::insertTrack(int index, PlayListTrack *track)
addTrack(track);
}
-QList<PlayListGroup *> GroupedContainer::groups()
+QList<PlayListGroup *> GroupedContainer::groups() const
{
return m_groups;
}
@@ -185,6 +185,20 @@ int GroupedContainer::numberOfTrack(int index) const
return -1;
}
+PlayListTrack *GroupedContainer::findTrack(int number) const
+{
+ int firstNumber = 0;
+ foreach (PlayListGroup *group, m_groups)
+ {
+ if(number >= firstNumber && number < firstNumber + group->count())
+ {
+ return group->tracks().at(number - firstNumber);
+ }
+ firstNumber += group->count();
+ }
+ return 0;
+}
+
void GroupedContainer::removeTrack(int index)
{
PlayListTrack *t = track(index);
diff --git a/src/qmmpui/groupedcontainer_p.h b/src/qmmpui/groupedcontainer_p.h
index 765249b0e..642eba4b3 100644
--- a/src/qmmpui/groupedcontainer_p.h
+++ b/src/qmmpui/groupedcontainer_p.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2013 by Ilya Kotov *
+ * Copyright (C) 2013-2014 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -36,7 +36,7 @@ public:
void addTrack(PlayListTrack *track);
void insertTrack(int index, PlayListTrack *track);
- QList<PlayListGroup *> groups();
+ QList<PlayListGroup *> groups() const;
QList<PlayListItem *> items() const;
int count() const;
int trackCount() const;
@@ -51,6 +51,7 @@ public:
PlayListGroup *group(int index) const;
bool contains(PlayListItem *item) const;
int numberOfTrack(int index) const;
+ PlayListTrack *findTrack(int number) const;
void removeTrack(int index);
void removeTrack(PlayListTrack *track);
void removeTracks(QList<PlayListTrack *> tracks);
diff --git a/src/qmmpui/normalcontainer.cpp b/src/qmmpui/normalcontainer.cpp
index 665f19e91..0bcba32e5 100644
--- a/src/qmmpui/normalcontainer.cpp
+++ b/src/qmmpui/normalcontainer.cpp
@@ -43,7 +43,7 @@ void NormalContainer::insertTrack(int index, PlayListTrack *track)
m_items.append(track);
}
-QList<PlayListGroup *> NormalContainer::groups()
+QList<PlayListGroup *> NormalContainer::groups() const
{
return QList<PlayListGroup *>();
}
@@ -131,6 +131,15 @@ int NormalContainer::numberOfTrack(int index) const
return index;
}
+PlayListTrack *NormalContainer::findTrack(int number) const
+{
+ if(number >= count() || number < 0)
+ {
+ return 0;
+ }
+ return dynamic_cast<PlayListTrack *> (m_items.at(number));
+}
+
void NormalContainer::removeTrack(int index)
{
PlayListTrack *t = track(index);
diff --git a/src/qmmpui/normalcontainer_p.h b/src/qmmpui/normalcontainer_p.h
index 56d53b3f9..c57fce5ac 100644
--- a/src/qmmpui/normalcontainer_p.h
+++ b/src/qmmpui/normalcontainer_p.h
@@ -36,7 +36,7 @@ public:
void addTrack(PlayListTrack *item);
void insertTrack(int index, PlayListTrack *track);
- QList<PlayListGroup *> groups();
+ QList<PlayListGroup *> groups() const;
QList<PlayListItem *> items() const;
int count() const;
int trackCount() const;
@@ -51,6 +51,7 @@ public:
PlayListGroup *group(int index) const;
bool contains(PlayListItem *item) const;
int numberOfTrack(int index) const;
+ PlayListTrack *findTrack(int number) const;
void removeTrack(int index);
void removeTrack(PlayListTrack *track);
void removeTracks(QList<PlayListTrack *> tracks);
diff --git a/src/qmmpui/playlistcontainer_p.h b/src/qmmpui/playlistcontainer_p.h
index 1243f5f0b..46a5c8e9d 100644
--- a/src/qmmpui/playlistcontainer_p.h
+++ b/src/qmmpui/playlistcontainer_p.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2013 by Ilya Kotov *
+ * Copyright (C) 2013-2014 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -41,7 +41,7 @@ public:
virtual void addTrack(PlayListTrack *track) = 0;
void addTracks(QList<PlayListTrack *> tracks);
virtual void insertTrack(int index, PlayListTrack *track) = 0;
- virtual QList<PlayListGroup *> groups() = 0;
+ virtual QList<PlayListGroup *> groups() const = 0;
virtual QList<PlayListItem *> items() const = 0;
virtual int count() const = 0;
virtual int trackCount() const = 0;
@@ -56,6 +56,7 @@ public:
virtual PlayListGroup *group(int index) const = 0;
virtual bool contains(PlayListItem *item) const = 0;
virtual int numberOfTrack(int index) const = 0;
+ virtual PlayListTrack *findTrack(int number) const = 0;
virtual void removeTrack(int index) = 0;
virtual void removeTrack(PlayListTrack *track) = 0;
virtual void removeTracks(QList<PlayListTrack *> tracks) = 0;
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index b3118c62c..3dc90aee7 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -401,6 +401,11 @@ int PlayListModel::numberOfTrack(int index) const
return m_container->numberOfTrack(index);
}
+PlayListTrack *PlayListModel::findTrack(int number) const
+{
+ return m_container->findTrack(number);
+}
+
void PlayListModel::setSelected(int index, bool selected)
{
m_container->setSelected(index, selected);
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index 49c3e0a6b..06333fb61 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -302,6 +302,8 @@ public:
*/
int numberOfTrack(int index) const;
+ PlayListTrack *findTrack(int number) const;
+
signals:
/*!
* Emitted when the state of PlayListModel has changed.