#include "musiclibrarymodelprivate.h"
#include "musiclibrarytreeprivate.h"
#include "musiclibrarystdtreeprivate.h"
#include "musiclibrarylistprivate.h"

MusicLibraryModelPrivate::MusicLibraryModelPrivate(MusicLibrary *l)
    : library(l), treeModel(0), stdTreeModel(0), artistsList(0), recordsList(0), songsList(0)
{
}

QAbstractItemModel *MusicLibraryModelPrivate::tree()
{
    if (!treeModel) {
        treeModel = new MusicLibraryTreePrivate(library);
    }
    return treeModel;
}

QStandardItemModel *MusicLibraryModelPrivate::stdTree()
{
    if (!stdTreeModel) {
        stdTreeModel = new MusicLibraryStdTreePrivate(library);
    }
    return stdTreeModel;
}

QAbstractItemModel *MusicLibraryModelPrivate::artists()
{
    if (!artistsList) {
        artistsList = new MusicLibraryListPrivate(library, MusicLibraryListPrivate::Artists);
    }
    return artistsList;
}

QAbstractItemModel *MusicLibraryModelPrivate::records()
{
    if (!recordsList) {
        recordsList = new MusicLibraryListPrivate(library, MusicLibraryListPrivate::Records);
    }
    return recordsList;
}

QAbstractItemModel *MusicLibraryModelPrivate::songs()
{
    if (!songsList) {
        songsList = new MusicLibraryListPrivate(library, MusicLibraryListPrivate::Songs);
    }
    return songsList;
}
