aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-20 20:36:30 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-20 20:36:30 +0000
commit3b41c06985686ecce4605ba41d57928dfd2015f3 (patch)
tree8df203d6ddef7e0d37036ba4209f0b17d00aa46e /src/qmmpui
parent80567cfa325311f02a4806f02bf35be1569fe059 (diff)
downloadqmmp-3b41c06985686ecce4605ba41d57928dfd2015f3.tar.gz
qmmp-3b41c06985686ecce4605ba41d57928dfd2015f3.tar.bz2
qmmp-3b41c06985686ecce4605ba41d57928dfd2015f3.zip
enabled 'sort selection' action
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3635 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/playlistcontainer.cpp22
-rw-r--r--src/qmmpui/playlistcontainer_p.h1
-rw-r--r--src/qmmpui/playlistmodel.cpp26
-rw-r--r--src/qmmpui/playlistmodel.h2
4 files changed, 30 insertions, 21 deletions
diff --git a/src/qmmpui/playlistcontainer.cpp b/src/qmmpui/playlistcontainer.cpp
index db7990a36..0952b2e9c 100644
--- a/src/qmmpui/playlistcontainer.cpp
+++ b/src/qmmpui/playlistcontainer.cpp
@@ -20,6 +20,7 @@
#include <QFileInfo>
#include <QDateTime>
+#include <QtAlgorithms>
#include "playlistmodel.h"
#include "playlistcontainer_p.h"
@@ -36,6 +37,27 @@ void PlayListContainer::sort(int mode)
addTracks(tracks);
}
+void PlayListContainer::sortSelection(int mode)
+{
+ QList<PlayListTrack *> tracks = takeAllTracks();
+ QList<PlayListTrack *> selected_tracks;
+ QList<int> selected_indexes;
+ for(int i = 0; i < tracks.count(); ++i)
+ {
+ if(tracks[i]->isSelected())
+ {
+ selected_tracks.append(tracks[i]);
+ selected_indexes.append(i);
+ }
+ }
+ doSort(mode, selected_tracks);
+
+ for (int i = 0; i < selected_indexes.count(); i++)
+ tracks.replace(selected_indexes[i], selected_tracks[i]);
+
+ addTracks(tracks);
+}
+
////===============THE BEGINNING OF SORT IMPLEMENTATION =======================////
// First we'll implement bundle of static compare procedures
diff --git a/src/qmmpui/playlistcontainer_p.h b/src/qmmpui/playlistcontainer_p.h
index a3219c3fd..daf271172 100644
--- a/src/qmmpui/playlistcontainer_p.h
+++ b/src/qmmpui/playlistcontainer_p.h
@@ -58,6 +58,7 @@ public:
virtual void reverseList() = 0;
virtual void randomizeList() = 0;
virtual void sort(int mode);
+ virtual void sortSelection(int mode);
protected:
/*!
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index 0eec6c062..828c914de 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -18,17 +18,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <QWidget>
-#include <QFile>
-#include <QDir>
#include <QtAlgorithms>
-#include <QFileInfo>
#include <QTextStream>
-#include <QPluginLoader>
-#include <QApplication>
-#include <QTimer>
-#include <QBuffer>
-#include <QMetaType>
-#include <QDateTime>
#include <time.h>
#include <qmmp/metadatamanager.h>
#include "playlistparser.h"
@@ -543,7 +534,7 @@ QList<int> PlayListModel::selectedIndexes() const
return selected_rows;
}
-QList<PlayListTrack *> PlayListModel::selectedTracks()
+QList<PlayListTrack *> PlayListModel::selectedTracks() const
{
QList<PlayListTrack*> selected_tracks;
foreach(PlayListItem *item, m_container->items())
@@ -626,16 +617,11 @@ void PlayListModel::reverseList()
void PlayListModel::sortSelection(int mode)
{
- /*QList<PlayListItem*>selected_items = selectedItems();
- QList<int>selected_rows = selectedIndexes();
-
- doSort(mode,selected_items);
-
- for (int i = 0;i < selected_rows.count();i++)
- m_items.replace(selected_rows[i],selected_items[i]);
-
- m_current = m_items.indexOf(m_currentItem);
- emit listChanged();*/
+ if(m_container->isEmpty())
+ return;
+ m_container->sortSelection(mode);
+ m_current = m_container->indexOf(m_current_track);
+ emit listChanged();
}
void PlayListModel::sort(int mode)
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index 1b1f235a9..ff8bc79f9 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -213,7 +213,7 @@ public:
/*!
* Returns list of \b PlayListItem pointers that are selected.
*/
- QList<PlayListTrack *> selectedTracks();
+ QList<PlayListTrack *> selectedTracks() const;
/*!
* Returns list of all \b PlayListItem pointers.
*/