2 // C++ Implementation: playlistlistmodel
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
6 // Copyright: See COPYING file that comes with this distribution
8 #include "collectionsmodel.h"
11 using namespace XmmsQt
;
13 CCollectionsModel::CCollectionsModel(XmmsQt::QMedialib
* medialib
, QObject
* parent
) : QAbstractListModel(parent
),
14 m_Medialib(medialib
) {
16 connect(m_Medialib
, SIGNAL(playlistsReseted()), this, SIGNAL(layoutChanged()));
19 CCollectionsModel::~CCollectionsModel() {
22 QVariant
CCollectionsModel::data(const QModelIndex
& index
, int role
) const {
23 if (role
== Qt::DisplayRole
) {
24 QPlaylist
* playlist
= static_cast<QPlaylist
*>(index
.internalPointer());
25 if (playlist
== m_Medialib
->activePlaylist())
26 return playlist
->identifier() + ' ' + tr("[active]");
28 return playlist
->identifier();
34 QVariant
CCollectionsModel::headerData(int section
, Qt::Orientation orientation
, int role
) const {
35 return tr("Playlists");
38 QModelIndex
CCollectionsModel::index(int row
, int column
, const QModelIndex
& parent
) const {
39 if (m_Medialib
&& !m_Medialib
->playlists().isEmpty())
40 return createIndex(row
, column
, m_Medialib
->playlists()[m_Medialib
->playlists().keys()[row
]]);
45 int CCollectionsModel::rowCount(const QModelIndex
& parent
) const {
46 if (m_Medialib
&& (parent
== QModelIndex()))
47 return m_Medialib
->playlists().count();