summaryrefslogtreecommitdiffstats
path: root/src/qml/qmllibrarytracklistmodel.h
blob: 9bf4870fa1819d7f3c229c2750db2be38e125cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma once
#include <QIdentityProxyModel>

class LibraryTableModel;

namespace mixxx {
namespace skin {
namespace qml {

class QmlLibraryTrackListModel : public QIdentityProxyModel {
  public:
    enum Roles {
        TitleRole = Qt::UserRole,
        ArtistRole,
        AlbumRole,
        AlbumArtistRole,
        FileUrlRole,
    };
    Q_ENUM(Roles);

    QmlLibraryTrackListModel(LibraryTableModel* pModel, QObject* pParent = nullptr);
    ~QmlLibraryTrackListModel() = default;

    QVariant data(const QModelIndex& index, int role) const override;
    int columnCount(const QModelIndex& index = QModelIndex()) const override;
    QHash<int, QByteArray> roleNames() const override;
};

} // namespace qml
} // namespace skin
} // namespace mixxx

Q_DECLARE_METATYPE(mixxx::skin::qml::QmlLibraryTrackListModel*)