aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/General/mpris/mpris1/tracklistobject.cpp18
-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
8 files changed, 42 insertions, 25 deletions
diff --git a/src/plugins/General/mpris/mpris1/tracklistobject.cpp b/src/plugins/General/mpris/mpris1/tracklistobject.cpp
index 23740ff81..2cef4a8c7 100644
--- a/src/plugins/General/mpris/mpris1/tracklistobject.cpp
+++ b/src/plugins/General/mpris/mpris1/tracklistobject.cpp
@@ -57,9 +57,6 @@ int TrackListObject::AddTrack(const QString &in0, bool in1)
m_pl_manager->selectPlayList(m_model);
m_player->stop();
connect(m_model, SIGNAL(trackAdded(PlayListTrack*)), SLOT(playTrack(PlayListTrack*)));
- /*m_prev_count = m_model->count();
- connect(m_model, SIGNAL(listChanged()), this, SLOT(checkNewItem()));
- connect(m_model, SIGNAL(loaderFinished()), this, SLOT(disconnectPl()));*/
}
m_model->add(path);
return 0;
@@ -83,20 +80,7 @@ int TrackListObject::GetLength()
QVariantMap TrackListObject::GetMetadata(int in0)
{
QVariantMap map;
- PlayListTrack *track = 0;
- int track_counter = 0;
- for(int i = 0; i <m_model->count(); i++)
- {
- if(m_model->isTrack(i))
- track_counter++;
- else
- continue;
- if(track_counter - 1 == in0)
- {
- track = m_model->track(i);
- break;
- }
- }
+ PlayListTrack *track = m_model->findTrack(in0);
if (track)
{
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.