From 11aafe91ce22d00cf5b36f7dd835d38875d17d0f Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 13 Apr 2015 11:52:50 +0000 Subject: added signal sortingByColumnFinished git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4845 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/playlistmodel.cpp | 10 ++++++++++ src/qmmpui/playlistmodel.h | 2 +- src/qmmpui/playlisttask.cpp | 12 ++++++++++++ src/qmmpui/playlisttask_p.h | 6 ++++-- 4 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src/qmmpui') 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) { diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 34bb9f745..6ac505a14 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -332,8 +332,8 @@ signals: */ void loaderFinished(); - void currentVisibleRequest(); + void sortingByColumnFinished(int column, bool reverted); public slots: /*! diff --git a/src/qmmpui/playlisttask.cpp b/src/qmmpui/playlisttask.cpp index 4b6d4b4e4..4b04ca82a 100644 --- a/src/qmmpui/playlisttask.cpp +++ b/src/qmmpui/playlisttask.cpp @@ -105,6 +105,7 @@ PlayListTask::PlayListTask(QObject *parent) : QThread(parent) m_reverted = true; m_align_groups = false; m_current_track = 0; + m_column = 0; m_task = EMPTY; m_sort_keys.insert(PlayListModel::TITLE, Qmmp::TITLE); @@ -186,6 +187,7 @@ void PlayListTask::sortByColumn(QList tracks, int column) m_task = SORT_BY_COLUMN; m_input_tracks = tracks; m_tracks = tracks; + m_column = column; for(int i = 0; i < tracks.count(); ++i) { @@ -408,6 +410,16 @@ QList PlayListTask::takeResults(PlayListTrack **current_track) return m_tracks; } +int PlayListTask::column() const +{ + return m_column; +} + +bool PlayListTask::isReverted() const +{ + return m_reverted; +} + void PlayListTask::clear() { qDeleteAll(m_fields); diff --git a/src/qmmpui/playlisttask_p.h b/src/qmmpui/playlisttask_p.h index c1359bbb7..0a8e062ad 100644 --- a/src/qmmpui/playlisttask_p.h +++ b/src/qmmpui/playlisttask_p.h @@ -62,11 +62,12 @@ public: bool isChanged(PlayListContainer *container); QList takeResults(PlayListTrack **current_track); PlayListTrack *currentTrack() const; - + int column() const; + bool isReverted() const; + void clear(); private: - void clear(); QList m_fields; QList m_tracks; QList m_input_tracks; @@ -76,6 +77,7 @@ private: TaskType m_task; bool m_reverted; bool m_align_groups; + int m_column; QHash m_sort_keys; }; -- cgit v1.2.3-13-gbd6f