diff options
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/groupedcontainer.cpp | 11 | ||||
| -rw-r--r-- | src/qmmpui/groupedcontainer_p.h | 4 | ||||
| -rw-r--r-- | src/qmmpui/normalcontainer.cpp | 6 | ||||
| -rw-r--r-- | src/qmmpui/normalcontainer_p.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistcontainer_p.h | 2 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 10 |
6 files changed, 29 insertions, 6 deletions
diff --git a/src/qmmpui/groupedcontainer.cpp b/src/qmmpui/groupedcontainer.cpp index 1fd30dc04..12bb8a5c7 100644 --- a/src/qmmpui/groupedcontainer.cpp +++ b/src/qmmpui/groupedcontainer.cpp @@ -275,6 +275,17 @@ void GroupedContainer::clear() m_items.clear(); } +void GroupedContainer::reverseList() +{ + QList<PlayListTrack *> tracks = takeAllTracks(); + + for (int i = 0;i < tracks.size()/2;i++) + tracks.swap(i, tracks.size() - i - 1); + + foreach (PlayListTrack *t, tracks) + addTrack(t); +} + void GroupedContainer::updateIndex() { for(int i = 0; i < m_groups.count(); ++i) diff --git a/src/qmmpui/groupedcontainer_p.h b/src/qmmpui/groupedcontainer_p.h index 64b8a069a..bd2e75500 100644 --- a/src/qmmpui/groupedcontainer_p.h +++ b/src/qmmpui/groupedcontainer_p.h @@ -30,7 +30,7 @@ public: virtual ~GroupedContainer(); - void addTrack(PlayListTrack *item); + void addTrack(PlayListTrack *track); QList<PlayListGroup *> groups(); QList<PlayListItem *> items() const; int count() const; @@ -52,6 +52,8 @@ public: QList<PlayListTrack *> takeAllTracks(); void clear(); + void reverseList(); + private: void addGroup(PlayListGroup *group); void updateIndex(); diff --git a/src/qmmpui/normalcontainer.cpp b/src/qmmpui/normalcontainer.cpp index 3b2f23185..37f5fc3eb 100644 --- a/src/qmmpui/normalcontainer.cpp +++ b/src/qmmpui/normalcontainer.cpp @@ -183,3 +183,9 @@ void NormalContainer::clear() qDeleteAll(m_items); m_items.clear(); } + +void NormalContainer::reverseList() +{ + for (int i = 0;i < m_items.size()/2;i++) + m_items.swap(i,m_items.size() - i - 1); +} diff --git a/src/qmmpui/normalcontainer_p.h b/src/qmmpui/normalcontainer_p.h index 05c257245..84dc2607b 100644 --- a/src/qmmpui/normalcontainer_p.h +++ b/src/qmmpui/normalcontainer_p.h @@ -51,6 +51,8 @@ public: QList<PlayListTrack *> takeAllTracks(); void clear(); + void reverseList(); + private: QList<PlayListItem *> m_items; }; diff --git a/src/qmmpui/playlistcontainer_p.h b/src/qmmpui/playlistcontainer_p.h index caa7cb23e..e8b941fc8 100644 --- a/src/qmmpui/playlistcontainer_p.h +++ b/src/qmmpui/playlistcontainer_p.h @@ -54,6 +54,8 @@ public: virtual bool move(QList<int> indexes, int from, int to) = 0; virtual QList<PlayListTrack *> takeAllTracks() = 0; virtual void clear() = 0; + + virtual void reverseList() = 0; }; #endif // PLAYLISTCONTAINER_P_H diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index a224dccc2..6f8a5adf1 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -617,11 +617,11 @@ void PlayListModel::randomizeList() void PlayListModel::reverseList() { - /*for (int i = 0;i < m_items.size()/2;i++) - m_items.swap(i,m_items.size() - i - 1); - - m_current = m_items.indexOf(m_currentItem); - emit listChanged();*/ + if(m_container->isEmpty()) + return; + m_container->reverseList(); + m_current = m_container->indexOf(m_current_track); + emit listChanged(); } /* ////===============THE BEGINNING OF SORT IMPLEMENTATION =======================//// |
