aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/playlistheader.cpp12
-rw-r--r--src/plugins/Ui/skinned/playlistheader.h3
-rw-r--r--src/qmmpui/playlisttask.cpp7
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);