diff options
| -rw-r--r-- | src/plugins/Ui/skinned/playlistheader.cpp | 12 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlistheader.h | 3 | ||||
| -rw-r--r-- | 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 <qmmp/qmmp.h> #include <qmmpui/qmmpuisettings.h> #include <qmmpui/playlistheadermodel.h> +#include <qmmpui/playlistmanager.h> #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<PlayListTrack *> 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<PlayListTrack *> 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); |
