Warning, file /utilities/telly-skout/src/programsmodel.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // SPDX-FileCopyrightText: 2022 Plata Hill <plata.hill@kdemail.net> 0002 // SPDX-License-Identifier: LGPL-2.1-or-later 0003 0004 #pragma once 0005 0006 #include <QAbstractListModel> 0007 0008 #include <QHash> 0009 #include <QObject> 0010 0011 class Channel; 0012 class Program; 0013 class ProgramFactory; 0014 0015 class ProgramsModel : public QAbstractListModel 0016 { 0017 Q_OBJECT 0018 0019 Q_PROPERTY(Channel *channel READ channel CONSTANT) 0020 0021 public: 0022 explicit ProgramsModel(Channel *channel, ProgramFactory &programFactory); 0023 ~ProgramsModel() override; 0024 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0025 QHash<int, QByteArray> roleNames() const override; 0026 int rowCount(const QModelIndex &parent) const override; 0027 0028 Channel *channel() const; 0029 0030 private: 0031 void loadProgram(int index) const; 0032 0033 Channel *m_channel; 0034 mutable QHash<int, Program *> m_programs; 0035 ProgramFactory &m_programFactory; 0036 };