diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-20 20:36:30 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-20 20:36:30 +0000 |
| commit | 3b41c06985686ecce4605ba41d57928dfd2015f3 (patch) | |
| tree | 8df203d6ddef7e0d37036ba4209f0b17d00aa46e | |
| parent | 80567cfa325311f02a4806f02bf35be1569fe059 (diff) | |
| download | qmmp-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
| -rw-r--r-- | src/qmmpui/playlistcontainer.cpp | 22 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer_p.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 26 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 2 |
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. */ |
