Warning, file /utilities/telly-skout/src/group.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 "groupdata.h"
0009 #include "types.h"
0010 
0011 class ChannelsModel;
0012 
0013 class Group : public QObject
0014 {
0015     Q_OBJECT
0016 
0017     Q_PROPERTY(QString id READ id CONSTANT)
0018     Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
0019     Q_PROPERTY(QString url READ url CONSTANT)
0020     Q_PROPERTY(bool refreshing READ refreshing WRITE setRefreshing NOTIFY refreshingChanged)
0021     Q_PROPERTY(int errorId READ errorId NOTIFY errorIdChanged)
0022     Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
0023     Q_PROPERTY(ChannelsModel *channels MEMBER m_channels CONSTANT)
0024 
0025 public:
0026     explicit Group(const GroupData &data);
0027 
0028     ~Group();
0029 
0030     QString id() const;
0031     QString name() const;
0032     QString url() const;
0033     int errorId() const;
0034     QString errorString() const;
0035 
0036     bool refreshing() const;
0037 
0038     void setName(const QString &name);
0039     void setRefreshing(bool refreshing);
0040 
0041 Q_SIGNALS:
0042     void nameChanged(const QString &name);
0043     void groupsChanged(const QVector<Group *> &groups);
0044     void deleteAfterCountChanged(int count);
0045     void deleteAfterTypeChanged(int type);
0046     void errorIdChanged(int errorId);
0047     void errorStringChanged(const QString &errorString);
0048 
0049     void refreshingChanged(bool refreshing);
0050 
0051 private:
0052     void setError(const Error &error);
0053 
0054     GroupData m_data;
0055     ChannelsModel *m_channels;
0056     Error m_error;
0057 
0058     bool m_refreshing = false;
0059 };