File indexing completed on 2024-05-12 16:59:42
0001 /* 0002 SPDX-FileCopyrightText: 2007 Tobias Koenig <tokoe@kde.org> 0003 SPDX-FileCopyrightText: 2022 Fushan Wen <qydwhotmail@gmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <QAbstractListModel> 0011 0012 #include <KPluginMetaData> 0013 0014 /** 0015 * This class provides the list of PoTD providers. 0016 */ 0017 class PotdProviderModel : public QAbstractListModel 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 enum Roles { 0023 Id = Qt::UserRole + 1, 0024 NotSafeForWork, /**< Whether the provider may contain NSFW images **/ 0025 }; 0026 0027 explicit PotdProviderModel(QObject *parent = nullptr); 0028 0029 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0030 QVariant data(const QModelIndex &index, int role) const override; 0031 QHash<int, QByteArray> roleNames() const override; 0032 0033 Q_INVOKABLE int indexOf(const QString &identifier); 0034 Q_INVOKABLE bool isNSFW(int row); 0035 0036 void loadPluginMetaData(); 0037 0038 private: 0039 std::vector<KPluginMetaData> m_providers; 0040 };