aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/qsui/listwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/qsui/listwidget.cpp')
-rw-r--r--src/plugins/Ui/qsui/listwidget.cpp49
1 files changed, 49 insertions, 0 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();