diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-04-13 11:52:50 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-04-13 11:52:50 +0000 |
| commit | 11aafe91ce22d00cf5b36f7dd835d38875d17d0f (patch) | |
| tree | a4ad6b6cdd5ec69f6c66248f7f8510d1cf88b4f0 | |
| parent | b057923fa33a33f3afda5c0bf8ddcd7040d787fc (diff) | |
| download | qmmp-11aafe91ce22d00cf5b36f7dd835d38875d17d0f.tar.gz qmmp-11aafe91ce22d00cf5b36f7dd835d38875d17d0f.tar.bz2 qmmp-11aafe91ce22d00cf5b36f7dd835d38875d17d0f.zip | |
added signal sortingByColumnFinished
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4845 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 10 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlisttask.cpp | 12 | ||||
| -rw-r--r-- | src/qmmpui/playlisttask_p.h | 6 |
4 files changed, 27 insertions, 3 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) { 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<PlayListTrack *> 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<PlayListTrack *> 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<PlayListTrack *> takeResults(PlayListTrack **current_track); PlayListTrack *currentTrack() const; - + int column() const; + bool isReverted() const; + void clear(); private: - void clear(); QList <TrackField *> m_fields; QList <PlayListTrack *> m_tracks; QList <PlayListTrack *> m_input_tracks; @@ -76,6 +77,7 @@ private: TaskType m_task; bool m_reverted; bool m_align_groups; + int m_column; QHash<int, Qmmp::MetaData> m_sort_keys; }; |
