diff options
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/groupedcontainer.cpp | 16 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.cpp | 11 | ||||
| -rw-r--r-- | src/qmmpui/playlistitem.h | 5 |
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 |
