/* === This file is part of Calamares - === * * Originally from QJsonModel * Copyright 2015, Sacha Schutz * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Calamares is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . */ #ifndef QJSONMODEL_H #define QJSONMODEL_H #include #include "qjsonitem.h" #include #include #include class QJsonModel : public QAbstractItemModel { Q_OBJECT public: explicit QJsonModel(QObject *parent = 0); virtual ~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