/* === This file is part of Calamares - === * * SPDX-License-Identifier: GPL-3.0+ * License-Filename: LICENSES/GPLv3+-QJsonModel */ #ifndef QJSONMODEL_H #define QJSONMODEL_H #include #include "qjsonitem.h" #include #include #include class QJsonModel : public QAbstractItemModel { Q_OBJECT public: explicit QJsonModel(QObject *parent = nullptr); ~QJsonModel(); bool load(const QString& fileName); bool load(QIODevice * device); bool loadJson(const QByteArray& json); QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; QModelIndex index(int row, int column,const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &index) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; void setIcon(const QJsonValue::Type& type, const QIcon& icon); private: QJsonTreeItem * mRootItem; QJsonDocument mDocument; QStringList mHeaders; QHash mTypeIcons; }; #endif // QJSONMODEL_H