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 | |
| 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')
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 45 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 6 |
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) */ |
