From 276e2812df63848805f5a871cbf860dbf2082709 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 12 May 2019 09:49:15 +0000 Subject: qsui: fixed feature to remove tracks from quick search (#1000) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8869 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/qsui/listwidget.cpp | 49 ++++++++++++++++++++++++++++++++++++++ src/plugins/Ui/qsui/listwidget.h | 3 +++ src/plugins/Ui/qsui/mainwindow.cpp | 6 ++--- 3 files changed, 55 insertions(+), 3 deletions(-) (limited to 'src/plugins') 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 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 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, -- cgit v1.2.3-13-gbd6f