aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-04-13 11:52:50 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-04-13 11:52:50 +0000
commit11aafe91ce22d00cf5b36f7dd835d38875d17d0f (patch)
treea4ad6b6cdd5ec69f6c66248f7f8510d1cf88b4f0 /src/qmmpui
parentb057923fa33a33f3afda5c0bf8ddcd7040d787fc (diff)
downloadqmmp-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
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/playlistmodel.cpp10
-rw-r--r--src/qmmpui/playlistmodel.h2
-rw-r--r--src/qmmpui/playlisttask.cpp12
-rw-r--r--src/qmmpui/playlisttask_p.h6
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;
};