aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-05-12 09:49:15 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-05-12 09:49:15 +0000
commit276e2812df63848805f5a871cbf860dbf2082709 (patch)
tree09c202fbc87a30ea3641857094842e07d8633c85
parent2c9996aa5b65f939d59cc725391b8ee1e5eba893 (diff)
downloadqmmp-276e2812df63848805f5a871cbf860dbf2082709.tar.gz
qmmp-276e2812df63848805f5a871cbf860dbf2082709.tar.bz2
qmmp-276e2812df63848805f5a871cbf860dbf2082709.zip
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
-rw-r--r--src/plugins/Ui/qsui/listwidget.cpp49
-rw-r--r--src/plugins/Ui/qsui/listwidget.h3
-rw-r--r--src/plugins/Ui/qsui/mainwindow.cpp6
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,