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 };