From 4bfe51345d595d1ffc1b1ace32516f3c5fe1a896 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 14 Apr 2015 12:50:20 +0000 Subject: added sorting on mouse click git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4847 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/skinned/playlistheader.cpp | 12 +++++++++++- src/plugins/Ui/skinned/playlistheader.h | 3 ++- src/qmmpui/playlisttask.cpp | 7 ++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp index 75cb299fa..4d207ef1e 100644 --- a/src/plugins/Ui/skinned/playlistheader.cpp +++ b/src/plugins/Ui/skinned/playlistheader.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "skin.h" #include "playlistheader.h" @@ -211,7 +212,7 @@ void PlayListHeader::mousePressEvent(QMouseEvent *e) else { m_press_offset = e->pos().x() - m_rects.at(m_pressed_column).x(); - m_task = MOVE; + m_task = SORT; } } } @@ -224,12 +225,21 @@ void PlayListHeader::mousePressEvent(QMouseEvent *e) void PlayListHeader::mouseReleaseEvent(QMouseEvent *) { + if(m_task == SORT) + { + qDebug("sort column"); + PlayListManager::instance()->selectedPlayList()->sortByColumn(m_pressed_column); + } m_task = NO_TASK; update(); } void PlayListHeader::mouseMoveEvent(QMouseEvent *e) { + if(m_task == SORT) + { + m_task = MOVE; + } if(m_task == RESIZE && m_model->count() > 1) { m_model->resize(m_pressed_column, m_old_size + e->pos().x() - m_pressed_pos.x()); diff --git a/src/plugins/Ui/skinned/playlistheader.h b/src/plugins/Ui/skinned/playlistheader.h index b43e2c962..648e24fe1 100644 --- a/src/plugins/Ui/skinned/playlistheader.h +++ b/src/plugins/Ui/skinned/playlistheader.h @@ -88,7 +88,8 @@ private: { NO_TASK = -1, RESIZE, - MOVE + MOVE, + SORT } m_task; diff --git a/src/qmmpui/playlisttask.cpp b/src/qmmpui/playlisttask.cpp index 4b04ca82a..12fe44091 100644 --- a/src/qmmpui/playlisttask.cpp +++ b/src/qmmpui/playlisttask.cpp @@ -184,10 +184,11 @@ void PlayListTask::sortByColumn(QList tracks, int column) if(isRunning()) return; clear(); + m_reverted = !m_reverted; m_task = SORT_BY_COLUMN; m_input_tracks = tracks; - m_tracks = tracks; m_column = column; + m_sort_mode = PlayListModel::TITLE; //TODO add pattern check for(int i = 0; i < tracks.count(); ++i) { @@ -246,7 +247,7 @@ void PlayListTask::run() { qDebug("PlayListTask: started"); - if(m_task == SORT || m_task == SORT_SELECTION) + if(m_task == SORT || m_task == SORT_SELECTION || m_task == SORT_BY_COLUMN) { bool(*compareLessFunc)(TrackField*, TrackField*) = 0; bool(*compareGreaterFunc)(TrackField*, TrackField*) = 0; @@ -373,7 +374,7 @@ bool PlayListTask::isChanged(PlayListContainer *container) QList PlayListTask::takeResults(PlayListTrack **current_track) { - if(m_task == SORT) + if(m_task == SORT || m_task == SORT_BY_COLUMN) { foreach (TrackField *f, m_fields) m_tracks.append(f->track); -- cgit v1.2.3-13-gbd6f