diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmpui/groupedcontainer.cpp | 8 | ||||
| -rw-r--r-- | src/qmmpui/groupedcontainer_p.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/normalcontainer.cpp | 8 | ||||
| -rw-r--r-- | src/qmmpui/normalcontainer_p.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer_p.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 17 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 3 |
7 files changed, 37 insertions, 2 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp index 52f86a301..6e6b2d6c0 100644 --- a/src/qmmpui/groupedcontainer.cpp +++ b/src/qmmpui/groupedcontainer.cpp @@ -142,6 +142,14 @@ PlayListTrack *GroupedContainer::track(int index) const return dynamic_cast<PlayListTrack *> (i); } +PlayListGroup *GroupedContainer::group(int index) const +{ + PlayListItem *i = item(index); + if(i && i->isGroup()) + return dynamic_cast<PlayListGroup *> (i); + return 0; +} + bool GroupedContainer::contains(PlayListItem *item) const { return m_items.contains(item); diff --git a/src/qmmpui/groupedcontainer_p.h b/src/qmmpui/groupedcontainer_p.h index 89f42a705..86357de8c 100644 --- a/src/qmmpui/groupedcontainer_p.h +++ b/src/qmmpui/groupedcontainer_p.h @@ -47,6 +47,7 @@ public: int indexOf(PlayListItem *item) const; PlayListItem *item(int index) const; PlayListTrack *track(int index) const; + PlayListGroup *group(int index) const; bool contains(PlayListItem *item) const; int numberOfTrack(int index) const; void removeTrack(int index); diff --git a/src/qmmpui/normalcontainer.cpp b/src/qmmpui/normalcontainer.cpp index 1be508521..3cd8fa07b 100644 --- a/src/qmmpui/normalcontainer.cpp +++ b/src/qmmpui/normalcontainer.cpp @@ -95,7 +95,7 @@ PlayListItem *NormalContainer::item(int index) const { if(index >= count() || index < 0) { - qWarning("NormalContainer index is out of range"); + qWarning("NormalContainer: index is out of range"); return 0; } return m_items.at(index); @@ -107,6 +107,12 @@ PlayListTrack *NormalContainer::track(int index) const return dynamic_cast<PlayListTrack *> (i); } +PlayListGroup *NormalContainer::group(int index) const +{ + Q_UNUSED(index); + return 0; +} + bool NormalContainer::contains(PlayListItem *item) const { return m_items.contains(item); diff --git a/src/qmmpui/normalcontainer_p.h b/src/qmmpui/normalcontainer_p.h index c0117c3e5..f64787cb5 100644 --- a/src/qmmpui/normalcontainer_p.h +++ b/src/qmmpui/normalcontainer_p.h @@ -47,6 +47,7 @@ public: int indexOf(PlayListItem *item) const; PlayListItem *item(int index) const; PlayListTrack *track(int index) const; + PlayListGroup *group(int index) const; bool contains(PlayListItem *item) const; int numberOfTrack(int index) const; void removeTrack(int index); diff --git a/src/qmmpui/playlistcontainer_p.h b/src/qmmpui/playlistcontainer_p.h index 00bebb680..9710585aa 100644 --- a/src/qmmpui/playlistcontainer_p.h +++ b/src/qmmpui/playlistcontainer_p.h @@ -52,6 +52,7 @@ public: virtual int indexOf(PlayListItem *item) const = 0; virtual PlayListItem *item(int index) const = 0; virtual PlayListTrack *track(int index) const = 0; + virtual PlayListGroup *group(int index) const = 0; virtual bool contains(PlayListItem *item) const = 0; virtual int numberOfTrack(int index) const = 0; virtual void removeTrack(int index) = 0; diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 828c914de..2646b71ed 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -179,6 +179,11 @@ PlayListTrack* PlayListModel::track(int index) const return m_container->track(index); } +PlayListGroup* PlayListModel::group(int index) const +{ + return m_container->group(index); +} + int PlayListModel::currentIndex() const { return m_current; @@ -190,7 +195,10 @@ bool PlayListModel::setCurrent(int index) return false; PlayListItem *item = m_container->item(index); if(item->isGroup()) - return false; + { + index++; + item = m_container->item(index); + } m_current = index; m_current_track = dynamic_cast<PlayListTrack*> (item); emit currentChanged(); @@ -212,6 +220,13 @@ bool PlayListModel::isTrack(int index) const return !m_container->item(index)->isGroup(); } +bool PlayListModel::isGroup(int index) const +{ + if (index > count()-1 || index < 0) + return false; + return !m_container->item(index)->isGroup(); +} + bool PlayListModel::next() { if(m_stop_track == currentTrack()) diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 2bd81eea4..769b55dc8 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -128,6 +128,7 @@ public: */ PlayListItem* item(int index) const; PlayListTrack* track(int index) const; + PlayListGroup* group(int index) const; /*! * Returns index of the current item. */ @@ -147,6 +148,8 @@ public: bool isTrack(int index) const; + bool isGroup(int index) const; + /*! * Returns \b true if item with \b index is selected, otherwise returns \b false */ |
