KT
Size: a a a
KT
AS
з
AS
KT
KT
AS
KT
AS
AS
AS
AS
AS
KT
AS
KT
GK
AS
AS
struct Track {
Q_GADGET
public:
QString name;
};
class TrackModel : public QAbstractListModel {
Q_OBJECT
enum { TRACK_NAME_ROLE = Qt::UserRole + 1 };
public:
virtual int rowCount(const QModelIndex& parent) const override
{
if (parent.isValid()) {
return 0;
}
return m_list.size();
}
virtual QVariant data(const QModelIndex& index, int role) const override
{
if (index.isValid()) {
if (role == TRACK_NAME_ROLE) {
return m_list.at(index.row()).name;
}
}
return QVariant();
}
virtual QHash<int, QByteArray> roleNames() const override
{
static QHash<int, QByteArray> roles { std::make_pair(TRACK_NAME_ROLE, QByteArray("name")) };
return roles;
}
public:
void setList(QList<Track> list)
{
beginResetModel();
m_list = list;
endResetModel();
}
private:
QList<Track> m_list;
};
AS