#ifndef KERNELINFORMATION_H
#define KERNELINFORMATION_H

#include <QString>

#include <QUrlQuery>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QNetworkAccessManager>

#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>

#include <QProcess>

#include <QFile>
#include <QMap>

class KernelInformation : public QObject
{
    Q_OBJECT

public:
    KernelInformation();
    void LoadInfo();
    QJsonArray get_listData() const;
    QJsonObject get_kernelData(int value) const;
    int get_count() const;
    QString get_name(int value) const;
    QString get_author(int value) const;
    QString get_des(int value) const;
    QString get_ver(int value) const;
    QStringList get_pkgName(int value) const;
    QStringList get_system(int value) const;
    QStringList get_arch(int value) const;
    bool get_installedAlready(int value) const;

    QString localKernelName() const;
    QString arch() const;

signals:
    void loadFinished(QNetworkReply *reply);



private:
    QString url = "http://info.kernel.gxde.gfdgdxi.top/information.json";
    QJsonArray listData;

    QStringList unShowMap = {
        "-dbg"
    };

    QStringList showMap = {
        "linux-headers",
        "linux-image",
        "linux-kernel"
    };

    QMap<QString, int> indexMap;


};

#endif // KERNELINFORMATION_H