Warning, file /utilities/telly-skout/src/channel.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 <QObject> 0007 0008 #include "channeldata.h" 0009 #include "programsmodel.h" 0010 0011 #include <QVector> 0012 0013 class Program; 0014 class ProgramFactory; 0015 0016 class Channel : public QObject 0017 { 0018 Q_OBJECT 0019 0020 Q_PROPERTY(QString id READ id CONSTANT) 0021 Q_PROPERTY(QString url READ url CONSTANT) 0022 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) 0023 Q_PROPERTY(QString image READ image WRITE setImage NOTIFY imageChanged) 0024 Q_PROPERTY(bool favorite READ favorite WRITE setFavorite NOTIFY favoriteChanged) 0025 Q_PROPERTY(QVector<QString> groups READ groups WRITE setGroups NOTIFY groupsChanged) 0026 Q_PROPERTY(bool refreshing READ refreshing WRITE setRefreshing NOTIFY refreshingChanged) 0027 Q_PROPERTY(int errorId READ errorId NOTIFY errorIdChanged) 0028 Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged) 0029 Q_PROPERTY(ProgramsModel *programsModel MEMBER m_programsModel CONSTANT) 0030 0031 public: 0032 Channel(const ChannelData &data, bool favorite, const QVector<QString> &groupIds, ProgramFactory &programFactory); 0033 0034 ~Channel(); 0035 0036 QString id() const; 0037 QString url() const; 0038 QString name() const; 0039 QString image() const; 0040 bool favorite() const; 0041 QVector<QString> groups() const; 0042 int programCount() const; 0043 int errorId() const; 0044 QString errorString() const; 0045 0046 bool refreshing() const; 0047 0048 void setName(const QString &name); 0049 void setImage(const QString &image); 0050 void setFavorite(bool favorite); 0051 void setGroups(const QVector<QString> &groups); 0052 void setRefreshing(bool refreshing); 0053 0054 Q_SIGNALS: 0055 void nameChanged(const QString &name); 0056 void imageChanged(const QString &image); 0057 void favoriteChanged(bool favorite); 0058 void groupsChanged(const QVector<QString> &groups); 0059 void deleteAfterCountChanged(int count); 0060 void deleteAfterTypeChanged(int type); 0061 void programChanged(); 0062 void errorIdChanged(int errorId); 0063 void errorStringChanged(const QString &errorString); 0064 0065 void refreshingChanged(bool refreshing); 0066 0067 private: 0068 void setError(const Error &error); 0069 0070 ChannelData m_data; 0071 bool m_favorite; 0072 QVector<QString> m_groups; 0073 ProgramsModel *m_programsModel; 0074 Error m_error; 0075 0076 bool m_refreshing = false; 0077 };