aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-05-10 18:46:04 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-05-10 18:46:04 +0000
commit9c96316396389a51d54d0cc3e19f56531d7881d0 (patch)
tree320f48d2f2c2368406ed5739a045cb8e5bf61bae /src/qmmpui
parent4b9512abccfa313e723bbbc4a9a93ff29b0eedae (diff)
downloadqmmp-9c96316396389a51d54d0cc3e19f56531d7881d0.tar.gz
qmmp-9c96316396389a51d54d0cc3e19f56531d7881d0.tar.bz2
qmmp-9c96316396389a51d54d0cc3e19f56531d7881d0.zip
added PlayListModel::removeTracks function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8865 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/playlistmodel.cpp45
-rw-r--r--src/qmmpui/playlistmodel.h6
2 files changed, 49 insertions, 2 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index 801df63cc..31add1f6f 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -511,6 +511,51 @@ void PlayListModel::removeTrack (PlayListItem *track)
removeTrack (m_container->indexOf(track));
}
+void PlayListModel::removeTracks(const QList<PlayListItem *> &items)
+{
+ int i = 0;
+ int select_after_delete = -1;
+ int flags = 0;
+
+ while (!m_container->isEmpty() && i < m_container->count())
+ {
+ PlayListItem *item = m_container->item(i);
+ if (!item->isGroup() && items.contains(item))
+ {
+ flags |= removeTrackInternal(i);
+
+ if(m_container->isEmpty())
+ continue;
+
+ select_after_delete = i;
+ }
+ else
+ i++;
+ }
+
+ select_after_delete = qMin(select_after_delete, m_container->count() - 1);
+
+ if(select_after_delete >= 0)
+ {
+ m_container->setSelected(select_after_delete, true);
+ flags |= SELECTION;
+ }
+
+ m_play_state->prepare();
+
+ if(flags)
+ emit listChanged(flags);
+}
+
+void PlayListModel::removeTracks(const QList<PlayListTrack *> &tracks)
+{
+ QList<PlayListItem *> items;
+ for(PlayListTrack *track : tracks)
+ items << dynamic_cast<PlayListItem *>(track);
+
+ removeTracks(items);
+}
+
void PlayListModel::removeSelection(bool inverted)
{
int i = 0;
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index 1b7ebc68e..f5fc6e9c6 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -463,11 +463,13 @@ public slots:
/*!
* Removes items with \b i index.
*/
- void removeTrack (int i);
+ void removeTrack(int i);
/*!
* Removes item \b item from playlist
*/
- void removeTrack (PlayListItem *track);
+ void removeTrack(PlayListItem *track);
+ void removeTracks(const QList<PlayListItem *> &items);
+ void removeTracks(const QList<PlayListTrack *> &tracks);
/*!
* Inverts selection (selects unselected items and unselects selected items)
*/