From fce0e4d52345c18213662dc6153993ea55ab4f84 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 20 Aug 2013 18:07:17 +0000 Subject: fixed 'revert list' function git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3632 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/groupedcontainer.cpp | 11 +++++++++++ src/qmmpui/groupedcontainer_p.h | 4 +++- src/qmmpui/normalcontainer.cpp | 6 ++++++ src/qmmpui/normalcontainer_p.h | 2 ++ src/qmmpui/playlistcontainer_p.h | 2 ++ src/qmmpui/playlistmodel.cpp | 10 +++++----- 6 files changed, 29 insertions(+), 6 deletions(-) (limited to 'src') 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 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 groups(); QList items() const; int count() const; @@ -52,6 +52,8 @@ public: QList 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 takeAllTracks(); void clear(); + void reverseList(); + private: QList 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 indexes, int from, int to) = 0; virtual QList 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 =======================//// -- cgit v1.2.3-13-gbd6f