#ifndef MUSICLIBRARYLISTPRIVATE_H
#define MUSICLIBRARYLISTPRIVATE_H

#include <QAbstractListModel>

class MusicLibrary;
class MusicObject;

class MusicLibraryListPrivate : public QAbstractListModel
{
    Q_OBJECT

public:

    enum ModelType {
        Artists,
        Records,
        Songs
    };

    MusicLibraryListPrivate(MusicLibrary *library, ModelType type);

    // List model API
    int rowCount(const QModelIndex &parent) const;
    QVariant data(const QModelIndex &index, int role) const;

private slots:
    void objectChanged(MusicObject *obj);

private:
    MusicLibrary *library;
    ModelType type;
    QList<MusicObject *> modelData;
};

#endif // MUSICLIBRARYLISTPRIVATE_H
