Skip to content
Snippets Groups Projects
confighandler.h 1.98 KiB
Newer Older
akiraohgaki's avatar
akiraohgaki committed
#pragma once

#include <QObject>
#include <QJsonObject>

#include "qtlib_config.h"

class ConfigHandler : public QObject
{
    Q_OBJECT

public:
akiraohgaki's avatar
akiraohgaki committed
    explicit ConfigHandler(QObject *parent = nullptr);
akiraohgaki's avatar
akiraohgaki committed

public slots:
akiraohgaki's avatar
akiraohgaki committed
    QJsonObject getAppConfigApplication() const;
    QJsonObject getAppConfigInstallTypes() const;
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    QJsonObject getUsrConfigApplication() const;
    bool setUsrConfigApplication(const QJsonObject &object) const;
    QJsonObject getUsrConfigProviders() const;
    bool setUsrConfigProviders(const QJsonObject &object) const;
    QJsonObject getUsrConfigCategories() const;
    bool setUsrConfigCategories(const QJsonObject &object) const;
    QJsonObject getUsrConfigInstalledItems() const;
    bool setUsrConfigInstalledItems(const QJsonObject &object) const;
    QJsonObject getUsrConfigUpdateAvailable() const;
    bool setUsrConfigUpdateAvailable(const QJsonObject &object) const;
akiraohgaki's avatar
akiraohgaki committed

    bool setUsrConfigProvidersProvider(const QString &providerKey, const QJsonObject &object) const;
    bool removeUsrConfigProvidersProvider(const QString &providerKey) const;
    bool setUsrConfigCategoriesProvider(const QString &providerKey, const QJsonObject &object) const;
    bool removeUsrConfigCategoriesProvider(const QString &providerKey) const;
    bool setUsrConfigCategoriesInstallType(const QString &providerKey, const QString &categoryKey, const QString &installType) const;
    bool setUsrConfigInstalledItemsItem(const QString &itemKey, const QJsonObject &object) const;
    bool removeUsrConfigInstalledItemsItem(const QString &itemKey) const;
    bool setUsrConfigUpdateAvailableFile(const QString &fileKey, const QJsonObject &object) const;
    bool removeUsrConfigUpdateAvailableFile(const QString &fileKey) const;
akiraohgaki's avatar
akiraohgaki committed

private:
akiraohgaki's avatar
akiraohgaki committed
    void importAppConfigApplication();
    void importAppConfigInstallTypes();
akiraohgaki's avatar
akiraohgaki committed
    QString convertPathString(const QString &path) const;
akiraohgaki's avatar
akiraohgaki committed

    qtlib::Config appConfig_;
    qtlib::Config usrConfig_;
    QJsonObject appConfigApplication_;
    QJsonObject appConfigInstallTypes_;
};