File indexing completed on 2024-05-05 04:50:49
0001 /* 0002 * SPDX-FileCopyrightText: 2020 George Florea Bănuș <georgefb899@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #include "tracksmodel.h" 0008 0009 TracksModel::TracksModel(QObject *parent) 0010 : QAbstractListModel(parent) 0011 { 0012 } 0013 0014 int TracksModel::rowCount(const QModelIndex & /*parent*/) const 0015 { 0016 return m_tracks.size(); 0017 } 0018 0019 QVariant TracksModel::data(const QModelIndex &index, int role) const 0020 { 0021 if (!index.isValid() || m_tracks.isEmpty()) { 0022 return QVariant(); 0023 } 0024 0025 QMap<QString, QVariant> track = m_tracks[index.row()].toMap(); 0026 0027 switch (role) { 0028 case TextRole: { 0029 QString text; 0030 auto title = track[QStringLiteral("title")].toString(); 0031 if (!title.isEmpty()) { 0032 text += title.append(QStringLiteral(" ")); 0033 } 0034 auto lang = track[QStringLiteral("lang")].toString(); 0035 if (!lang.isEmpty()) { 0036 text += lang.append(QStringLiteral(" ")); 0037 } 0038 auto codec = track[QStringLiteral("codec")].toString(); 0039 if (!codec.isEmpty()) { 0040 text += codec; 0041 } 0042 return text; 0043 } 0044 case LanguageRole: 0045 return track[QStringLiteral("lang")]; 0046 case TitleRole: 0047 return track[QStringLiteral("title")]; 0048 case IDRole: 0049 return track[QStringLiteral("id")]; 0050 case CodecRole: 0051 return track[QStringLiteral("codec")]; 0052 } 0053 0054 return QVariant(); 0055 } 0056 0057 QHash<int, QByteArray> TracksModel::roleNames() const 0058 { 0059 QHash<int, QByteArray> roles; 0060 roles[TextRole] = "text"; 0061 roles[LanguageRole] = "language"; 0062 roles[TitleRole] = "title"; 0063 roles[IDRole] = "id"; 0064 roles[CodecRole] = "codec"; 0065 return roles; 0066 } 0067 0068 void TracksModel::setTracks(QList<QVariant> tracks) 0069 { 0070 beginResetModel(); 0071 m_tracks = tracks; 0072 endResetModel(); 0073 } 0074 0075 #include "moc_tracksmodel.cpp"