aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/playlistmodel.cpp')
-rw-r--r--src/qmmpui/playlistmodel.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index bd75a57ca..5fd7ec1db 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -862,7 +862,10 @@ void PlayListModel::updateMetaData()
void PlayListModel::onTaskFinished()
{
if(m_task->isChanged(m_container)) //update unchanged container only
+ {
+ m_task->clear();
return;
+ }
if(m_task->type() == PlayListTask::SORT || m_task->type() == PlayListTask::SORT_SELECTION)
{
@@ -870,6 +873,13 @@ void PlayListModel::onTaskFinished()
m_current = m_container->indexOf(m_current_track);
emit listChanged(STRUCTURE);
}
+ else if(m_task->type() == PlayListTask::SORT_BY_COLUMN)
+ {
+ m_container->replaceTracks(m_task->takeResults(&m_current_track));
+ m_current = m_container->indexOf(m_current_track);
+ emit listChanged(STRUCTURE);
+ emit sortingByColumnFinished(m_task->column(), m_task->isReverted());
+ }
else if(m_task->type() == PlayListTask::REMOVE_INVALID
|| m_task->type() == PlayListTask::REMOVE_DUPLICATES)
{