/* * SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez * * SPDX-License-Identifier: LGPL-2.0-or-later */ #pragma once #include "qqml.h" #include "quicksetting.h" #include #include #include "mobileshell_export.h" namespace MobileShell { class MOBILESHELL_EXPORT QuickSettingsModel : public QAbstractListModel, public QQmlParserStatus { Q_OBJECT Q_INTERFACES(QQmlParserStatus) Q_PROPERTY(QQmlListProperty children READ children NOTIFY childrenChanged) Q_CLASSINFO("DefaultProperty", "children") QML_ELEMENT public: QuickSettingsModel(QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role) const override; int rowCount(const QModelIndex &parent) const override; QHash roleNames() const override; QQmlListProperty children(); void classBegin() override; void componentComplete() override; Q_SCRIPTABLE void include(QuickSetting *item); Q_SIGNALS: void childrenChanged(); private: QList m_children; QList m_external; }; } // namespace MobileShell