aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/mpris/tracklistobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/mpris/tracklistobject.cpp')
-rw-r--r--src/plugins/General/mpris/tracklistobject.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/plugins/General/mpris/tracklistobject.cpp b/src/plugins/General/mpris/tracklistobject.cpp
index 6b3699a0c..3ca1830ba 100644
--- a/src/plugins/General/mpris/tracklistobject.cpp
+++ b/src/plugins/General/mpris/tracklistobject.cpp
@@ -21,18 +21,20 @@
#include <QFile>
#include <QUrl>
-#include <qmmpui/playlistmodel.h>
+#include <qmmpui/playlistmanager.h>
#include <qmmpui/mediaplayer.h>
#include <qmmpui/playlistitem.h>
#include "tracklistobject.h"
-TrackListObject::TrackListObject(QObject *parent)
- : QObject(parent)
+TrackListObject::TrackListObject(QObject *parent) : QObject(parent)
{
m_player = MediaPlayer::instance();
- m_model = m_player->playListModel();
+ m_pl_manager = m_player->playListManager();
+ m_model = m_pl_manager->currentPlayList();
connect (m_model, SIGNAL(listChanged()), SLOT(updateTrackList()));
+ connect (m_pl_manager, SIGNAL(currentPlayListChanged(PlayListModel*,PlayListModel*)),
+ SLOT(switchPlayList(PlayListModel*,PlayListModel*)));
}
@@ -111,3 +113,12 @@ void TrackListObject::updateTrackList()
{
emit TrackListChange(m_model->count());
}
+
+void TrackListObject::switchPlayList(PlayListModel *cur, PlayListModel *prev)
+{
+ m_model = cur;
+ connect (m_model, SIGNAL(listChanged()), SLOT(updateTrackList()));
+ if(prev)
+ disconnect(prev,0,this,0);
+ updateTrackList();
+}