File indexing completed on 2024-05-26 04:55:11

0001 /**
0002  * SPDX-FileCopyrightText: 2023 Bart De Vries <bart@mogwai.be>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QAbstractListModel>
0010 #include <QByteArray>
0011 #include <QHash>
0012 #include <QObject>
0013 #include <QQmlEngine>
0014 
0015 class AbstractEpisodeModel : public QAbstractListModel
0016 {
0017     Q_OBJECT
0018     QML_ELEMENT
0019     QML_UNCREATABLE("")
0020 
0021 public:
0022     enum Roles {
0023         TitleRole = Qt::DisplayRole,
0024         EntryRole = Qt::UserRole + 1,
0025         IdRole,
0026         ReadRole,
0027         NewRole,
0028         FavoriteRole,
0029         ContentRole,
0030         FeedNameRole,
0031         UpdatedRole,
0032     };
0033     Q_ENUM(Roles)
0034 
0035     explicit AbstractEpisodeModel(QObject *parent = nullptr);
0036     virtual QHash<int, QByteArray> roleNames() const override;
0037 
0038 public Q_SLOTS:
0039     virtual void updateInternalState() = 0;
0040 };