/* ============================================================ * SPDX-License-Identifier: GPL-3.0-only * Copyright (C) 2023 aqua * ============================================================ */ #include "playlistmodel.hpp" #include "playlist.hpp" PlaylistModel::PlaylistModel(Playlist *parent) : QAbstractItemModel{parent}, playlist(parent) { Q_CHECK_PTR(parent); connect(parent, &Playlist::mediaAboutToBeInserted, this, &PlaylistModel::beginInsertItems); connect(parent, &Playlist::mediaInserted, this, &PlaylistModel::endInsertItems); } QModelIndex PlaylistModel::index(int row, int column, const QModelIndex &parent) const { if (parent.isValid()) return {}; return createIndex(row, column); } QModelIndex PlaylistModel::parent(const QModelIndex &child) const { return {}; } int PlaylistModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; return playlist->count(); } int PlaylistModel::columnCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; return 1; } QVariant PlaylistModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return {}; switch (role) { case Qt::DisplayRole: return (*playlist)[index.row()]; default: return {}; } }