aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qmmpui/playlistmodel.cpp19
-rw-r--r--src/qmmpui/playlistmodel.h2
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.
*/