diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-05-10 18:46:04 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-05-10 18:46:04 +0000 |
| commit | 9c96316396389a51d54d0cc3e19f56531d7881d0 (patch) | |
| tree | 320f48d2f2c2368406ed5739a045cb8e5bf61bae /src/qmmpui/playlistmodel.cpp | |
| parent | 4b9512abccfa313e723bbbc4a9a93ff29b0eedae (diff) | |
| download | qmmp-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/playlistmodel.cpp')
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 45 |
1 files changed, 45 insertions, 0 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; |
