diff --git a/app/src/handlers/confighandler.cpp b/app/src/handlers/confighandler.cpp index a04c16d34cde20c6d499cd3b127f878f52e6ea7b..c214400d174ceff88f9369d1807eb8321c34d201 100644 --- a/app/src/handlers/confighandler.cpp +++ b/app/src/handlers/confighandler.cpp @@ -8,40 +8,18 @@ ConfigHandler::ConfigHandler(QObject *parent) : QObject(parent) { appConfig_ = qtlib::Config(":/configs"); + importAppConfigApplication(); + importAppConfigInstallTypes(); usrConfig_ = qtlib::Config(qtlib::Dir::genericConfigPath() + "/" + getAppConfigApplication()["id"].toString()); } -QJsonObject ConfigHandler::getAppConfigApplication() +QJsonObject ConfigHandler::getAppConfigApplication() const { - if (appConfigApplication_.isEmpty()) { - appConfigApplication_ = appConfig_.get("application"); - } return appConfigApplication_; } -QJsonObject ConfigHandler::getAppConfigInstallTypes() +QJsonObject ConfigHandler::getAppConfigInstallTypes() const { - if (appConfigInstallTypes_.isEmpty()) { - auto installTypes = appConfig_.get("install_types"); - for (const auto &key : installTypes.keys()) { - auto installtype = installTypes[key].toObject(); - installtype["destination"] = convertPathString(installtype["destination"].toString()); - installtype["generic_destination"] = convertPathString(installtype["generic_destination"].toString()); - installTypes[key] = installtype; - } - auto installTypesAlias = appConfig_.get("install_types_alias"); - for (const auto &key : installTypesAlias.keys()) { - auto installTypeAlias = installTypesAlias[key].toObject(); - auto baseKey = installTypeAlias["base"].toString(); - if (installTypes.contains(baseKey)) { - auto installType = installTypes[baseKey].toObject(); - installType["base"] = baseKey; - installType["name"] = installTypeAlias["name"].toString(); - installTypes[key] = installType; - } - } - appConfigInstallTypes_ = installTypes; - } return appConfigInstallTypes_; } @@ -183,6 +161,34 @@ bool ConfigHandler::removeUsrConfigInstalledItemsItem(const QString &itemKey) co return setUsrConfigInstalledItems(installedItems); } +void ConfigHandler::importAppConfigApplication() +{ + appConfigApplication_ = appConfig_.get("application"); +} + +void ConfigHandler::importAppConfigInstallTypes() +{ + auto installTypes = appConfig_.get("install_types"); + for (const auto &key : installTypes.keys()) { + auto installtype = installTypes[key].toObject(); + installtype["destination"] = convertPathString(installtype["destination"].toString()); + installtype["generic_destination"] = convertPathString(installtype["generic_destination"].toString()); + installTypes[key] = installtype; + } + auto installTypesAlias = appConfig_.get("install_types_alias"); + for (const auto &key : installTypesAlias.keys()) { + auto installTypeAlias = installTypesAlias[key].toObject(); + auto baseKey = installTypeAlias["base"].toString(); + if (installTypes.contains(baseKey)) { + auto installType = installTypes[baseKey].toObject(); + installType["base"] = baseKey; + installType["name"] = installTypeAlias["name"].toString(); + installTypes[key] = installType; + } + } + appConfigInstallTypes_ = installTypes; +} + QString ConfigHandler::convertPathString(const QString &path) const { auto newPath = path; diff --git a/app/src/handlers/confighandler.h b/app/src/handlers/confighandler.h index ff4a841826e7ab7dc5ec64e98d3f5963956e0488..bd44739d030aec2fe98cc653aed0e7c9f2632c12 100644 --- a/app/src/handlers/confighandler.h +++ b/app/src/handlers/confighandler.h @@ -13,8 +13,8 @@ public: explicit ConfigHandler(QObject *parent = nullptr); public slots: - QJsonObject getAppConfigApplication(); - QJsonObject getAppConfigInstallTypes(); + QJsonObject getAppConfigApplication() const; + QJsonObject getAppConfigInstallTypes() const; QJsonObject getUsrConfigApplication() const; bool setUsrConfigApplication(const QJsonObject &object) const; @@ -34,6 +34,8 @@ public slots: bool removeUsrConfigInstalledItemsItem(const QString &itemKey) const; private: + void importAppConfigApplication(); + void importAppConfigInstallTypes(); QString convertPathString(const QString &path) const; qtlib::Config appConfig_;