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