diff options
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 19 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 4710d1066..862d498c9 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -425,6 +425,25 @@ PlayListTrack *PlayListModel::findTrack(int track_index) const return m_container->findTrack(track_index); } +QList<PlayListItem *> PlayListModel::findTracks(const QString &str) const +{ + QList<PlayListItem *> items; + PlayListItem *item = 0; + if(str.isEmpty()) + return items; + + for(int i = 0; i < m_container->count(); ++i) + { + item = m_container->item(i); + if(item->isGroup()) + continue; + + if(!item->formattedTitles().filter(str, Qt::CaseInsensitive).isEmpty()) + items.append(item); + } + return items; +} + 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 fe5da58f6..55de460af 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -332,6 +332,8 @@ public: * Return null pointer if playlist does not contain track with index \b track_index. */ PlayListTrack *findTrack(int track_index) const; + + QList<PlayListItem *> findTracks(const QString &str) const; /*! * Enum of the playlist update flags. */ |
