File indexing completed on 2024-05-05 17:33:19
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 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 "Category.h" 0010 #include <QAbstractListModel> 0011 #include <QQmlParserStatus> 0012 0013 #include "discovercommon_export.h" 0014 0015 class QTimer; 0016 0017 class DISCOVERCOMMON_EXPORT CategoryModel : public QObject 0018 { 0019 Q_OBJECT 0020 Q_PROPERTY(QVariantList rootCategories READ rootCategoriesVL NOTIFY rootCategoriesChanged) 0021 public: 0022 explicit CategoryModel(QObject *parent = nullptr); 0023 0024 static CategoryModel *global(); 0025 0026 Q_SCRIPTABLE Category *findCategoryByName(const QString &name) const; 0027 void blacklistPlugin(const QString &name); 0028 QVector<Category *> rootCategories() const 0029 { 0030 return m_rootCategories; 0031 } 0032 QVariantList rootCategoriesVL() const; 0033 void populateCategories(); 0034 0035 Q_SIGNALS: 0036 void rootCategoriesChanged(); 0037 0038 private: 0039 QTimer *m_rootCategoriesChanged; 0040 QVector<Category *> m_rootCategories; 0041 };