/** * SPDX-FileCopyrightText: 2023 Bart De Vries * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #pragma once #include #include #include #include #include class AbstractEpisodeModel : public QAbstractListModel { Q_OBJECT QML_ELEMENT QML_UNCREATABLE("") public: enum Roles { TitleRole = Qt::DisplayRole, EntryRole = Qt::UserRole + 1, IdRole, ReadRole, NewRole, FavoriteRole, ContentRole, FeedNameRole, UpdatedRole, }; Q_ENUM(Roles) explicit AbstractEpisodeModel(QObject *parent = nullptr); virtual QHash roleNames() const override; public Q_SLOTS: virtual void updateInternalState() = 0; };