From b62d1be9f79870e1d2baca3ce08128a514df1883 Mon Sep 17 00:00:00 2001 From: Akira Ohgaki <akiraohgaki@gmail.com> Date: Wed, 31 May 2017 01:52:45 +0900 Subject: [PATCH] Import app configs --- app/src/handlers/confighandler.cpp | 58 ++++++++++++++++-------------- app/src/handlers/confighandler.h | 6 ++-- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/app/src/handlers/confighandler.cpp b/app/src/handlers/confighandler.cpp index a04c16d..c214400 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 ff4a841..bd44739 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_; -- GitLab