/* * SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez * SPDX-FileCopyrightText: 2022 Devin Lin * * SPDX-License-Identifier: LGPL-2.0-or-later */ #pragma once #include "qqml.h" #include "quicksetting.h" #include "savedquicksettings.h" #include "savedquicksettingsmodel.h" #include #include class QuickSettingsModel : public QAbstractListModel, public QQmlParserStatus { Q_OBJECT Q_INTERFACES(QQmlParserStatus) QML_ELEMENT Q_PROPERTY(int count READ rowCount NOTIFY countChanged) public: QuickSettingsModel(QObject *parent = nullptr); QVariant data(const QModelIndex &index, int role) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; QHash roleNames() const override; void classBegin() override; void componentComplete() override; Q_SIGNALS: void countChanged(); private: void loadQuickSettings(); void availabilityChanged(); bool m_loaded = false; QList m_quickSettings; SavedQuickSettings *m_savedQuickSettings; };