aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/groupedcontainer.cpp16
-rw-r--r--src/qmmpui/playlistitem.cpp11
-rw-r--r--src/qmmpui/playlistitem.h5
3 files changed, 30 insertions, 2 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp
index c6628a845..9b62d61d6 100644
--- a/src/qmmpui/groupedcontainer.cpp
+++ b/src/qmmpui/groupedcontainer.cpp
@@ -60,6 +60,7 @@ void GroupedContainer::addTrack(PlayListTrack *track)
m_groups.append(group);
m_items.append(group);
m_items.append(track);
+ //TODO calc track number
}
void GroupedContainer::addTracks(QList<PlayListTrack *> tracks)
@@ -237,7 +238,16 @@ bool GroupedContainer::contains(PlayListItem *item) const
int GroupedContainer::numberOfTrack(int index) const
{
- int firstIndex = 0, lastIndex = 0;
+ updateCache();
+ if(index >= count() || index < 0)
+ {
+ qWarning("GroupedContainer: index is out of range");
+ return 0;
+ }
+
+ return m_items.at(index)->trackNumber();
+
+ /*int firstIndex = 0, lastIndex = 0;
for(int i = 0; i < m_groups.count(); ++i)
{
if(i == 0)
@@ -255,7 +265,7 @@ int GroupedContainer::numberOfTrack(int index) const
{
return index - (i+1);
}
- }
+ }*/
return -1;
}
@@ -426,12 +436,14 @@ void GroupedContainer::updateCache() const
return;
m_items.clear();
+ int t = 0;
for(int i = 0; i < m_groups.count(); ++i)
{
m_items.append(m_groups.at(i));
foreach (PlayListTrack *track, m_groups.at(i)->trackList)
{
+ track->setTrackNumber(t++);
m_items.append(track);
}
}
diff --git a/src/qmmpui/playlistitem.cpp b/src/qmmpui/playlistitem.cpp
index eced1e032..5f339080d 100644
--- a/src/qmmpui/playlistitem.cpp
+++ b/src/qmmpui/playlistitem.cpp
@@ -24,6 +24,7 @@
PlayListItem::PlayListItem()
{
+ m_number = -1;
m_selected = false;
}
@@ -40,4 +41,14 @@ bool PlayListItem::isSelected() const
return m_selected;
}
+void PlayListItem::setTrackNumber(int number)
+{
+ m_number = number;
+}
+
+int PlayListItem::trackNumber() const
+{
+ return m_number;
+}
+
diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h
index 344996890..33bbd5464 100644
--- a/src/qmmpui/playlistitem.h
+++ b/src/qmmpui/playlistitem.h
@@ -64,8 +64,13 @@ public:
*/
virtual bool isGroup() const = 0;
+ void setTrackNumber(int number);
+
+ int trackNumber() const;
+
private:
bool m_selected;
+ int m_number;
};
#endif