aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-20 18:07:17 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-20 18:07:17 +0000
commitfce0e4d52345c18213662dc6153993ea55ab4f84 (patch)
tree783fa5bd43feeab9b2ae2ffb3d79014d47bcef68
parent4ad1526dc8448d6e379cdc92836d797a977b5e20 (diff)
downloadqmmp-fce0e4d52345c18213662dc6153993ea55ab4f84.tar.gz
qmmp-fce0e4d52345c18213662dc6153993ea55ab4f84.tar.bz2
qmmp-fce0e4d52345c18213662dc6153993ea55ab4f84.zip
fixed 'revert list' function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3632 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmpui/groupedcontainer.cpp11
-rw-r--r--src/qmmpui/groupedcontainer_p.h4
-rw-r--r--src/qmmpui/normalcontainer.cpp6
-rw-r--r--src/qmmpui/normalcontainer_p.h2
-rw-r--r--src/qmmpui/playlistcontainer_p.h2
-rw-r--r--src/qmmpui/playlistmodel.cpp10
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 =======================////