62 lines
1.1 KiB
C++
62 lines
1.1 KiB
C++
#ifndef __MEDIALIBITEM_H__
|
|
#define __MEDIALIBITEM_H__
|
|
|
|
#include <QStringList>
|
|
|
|
class MedialibItem {
|
|
public:
|
|
enum MedialibItemType {
|
|
NoneItem,
|
|
ArtistItem,
|
|
AlbumItem,
|
|
SongItem
|
|
};
|
|
|
|
MedialibItem (const QStringList &text = QStringList (), MedialibItem *parent = NULL, MedialibItemType type = NoneItem) {
|
|
m_text = text;
|
|
m_type = type;
|
|
m_parent = parent;
|
|
if (parent) {
|
|
parent->m_childs.append (this);
|
|
}
|
|
};
|
|
|
|
bool mayHaveChilds () const {
|
|
if (m_type == NoneItem || m_type == SongItem)
|
|
return false;
|
|
return true;
|
|
};
|
|
|
|
QString data (int c) const {
|
|
if (m_text.size () > c) {
|
|
return m_text.at (c);
|
|
}
|
|
return QString ();
|
|
};
|
|
|
|
MedialibItem *child (int c) const {
|
|
return m_childs.value (c);
|
|
}
|
|
|
|
int childCount () const {
|
|
return m_childs.count ();
|
|
};
|
|
|
|
MedialibItem *parent () const {
|
|
return m_parent;
|
|
};
|
|
|
|
int row () const {
|
|
if (m_parent)
|
|
return m_parent->m_childs.indexOf (const_cast<MedialibItem*> (this));
|
|
return 0;
|
|
}
|
|
|
|
private:
|
|
MedialibItemType m_type;
|
|
QStringList m_text;
|
|
MedialibItem *m_parent;
|
|
QList<MedialibItem *> m_childs;
|
|
};
|
|
|
|
#endif
|