aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 =======================////