diff options
| -rw-r--r-- | src/plugins/Ui/qsui/listwidget.cpp | 49 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/listwidget.h | 3 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 6 |
3 files changed, 55 insertions, 3 deletions
diff --git a/src/plugins/Ui/qsui/listwidget.cpp b/src/plugins/Ui/qsui/listwidget.cpp index 2ace2d171..0ced7bdbb 100644 --- a/src/plugins/Ui/qsui/listwidget.cpp +++ b/src/plugins/Ui/qsui/listwidget.cpp @@ -587,6 +587,55 @@ void ListWidget::setFilterString(const QString &str) updateList(PlayListModel::STRUCTURE); } +void ListWidget::clear() +{ + if(m_filterMode) + { + m_model->removeTracks(m_filteredItems); + m_filteredItems.clear(); + } + else + { + m_model->clear(); + } +} + +void ListWidget::removeSelected() +{ + if(m_filterMode) + { + QList<PlayListItem *> items; + for(PlayListItem *item : m_filteredItems) + { + if(item->isSelected()) + items << item; + } + m_model->removeTracks(items); + } + else + { + m_model->removeSelected(); + } +} + +void ListWidget::removeUnselected() +{ + if(m_filterMode) + { + QList<PlayListItem *> items; + for(PlayListItem *item : m_filteredItems) + { + if(!item->isSelected()) + items << item; + } + m_model->removeTracks(items); + } + else + { + m_model->removeUnselected(); + } +} + void ListWidget::updateSkin() { m_drawer.loadSystemColors(); diff --git a/src/plugins/Ui/qsui/listwidget.h b/src/plugins/Ui/qsui/listwidget.h index a5155f883..08fa97f0f 100644 --- a/src/plugins/Ui/qsui/listwidget.h +++ b/src/plugins/Ui/qsui/listwidget.h @@ -73,6 +73,9 @@ public slots: void updateList(int flags); void setViewPosition(int sc); void setFilterString(const QString &str = QString()); + void clear(); + void removeSelected(); + void removeUnselected(); signals: void doubleClicked(); diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp index 186a03aaf..ca2430e24 100644 --- a/src/plugins/Ui/qsui/mainwindow.cpp +++ b/src/plugins/Ui/qsui/mainwindow.cpp @@ -493,11 +493,11 @@ void MainWindow::createActions() //edit menu m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_SELECT_ALL, m_pl_manager, SLOT(selectAll()))); m_ui.menuEdit->addSeparator(); - m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_SELECTED, m_pl_manager, + m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_SELECTED, m_listWidget, SLOT(removeSelected()))); - m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_UNSELECTED, m_pl_manager, + m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_UNSELECTED, m_listWidget, SLOT(removeUnselected()))); - m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_ALL, m_pl_manager, SLOT(clear()))); + m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_ALL, m_listWidget, SLOT(clear()))); m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_INVALID, m_pl_manager, SLOT(removeInvalidTracks()))); m_ui.menuEdit->addAction(SET_ACTION(ActionManager::PL_REMOVE_DUPLICATES, m_pl_manager, |
