From 2b67ae3b1a370f48d62923023dc205693d3d0fcc Mon Sep 17 00:00:00 2001 From: Akira Ohgaki <akiraohgaki@gmail.com> Date: Wed, 12 Oct 2016 20:17:56 +0900 Subject: [PATCH] Config and network --- src/handlers/xdgurl.cpp | 39 +++++++++++---------------------------- src/handlers/xdgurl.h | 7 +++---- src/main.cpp | 22 ++++++++++------------ 3 files changed, 24 insertions(+), 44 deletions(-) diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp index d94acc5..e5323b2 100644 --- a/src/handlers/xdgurl.cpp +++ b/src/handlers/xdgurl.cpp @@ -15,13 +15,13 @@ namespace Handlers { -XdgUrl::XdgUrl(const QString &xdgUrl, Core::Config *appConfig, Core::Config *userConfig, Core::Network *asyncNetwork, QObject *parent) : - QObject(parent), _xdgUrl(xdgUrl), _appConfig(appConfig), _userConfig(userConfig), _asyncNetwork(asyncNetwork) +XdgUrl::XdgUrl(const QString &xdgUrl, Core::Config *config, Core::Network *network, QObject *parent) : + QObject(parent), _xdgUrl(xdgUrl), _config(config), _network(network) { _metadata = _parse(); _destinations = _loadDestinations(); - connect(_asyncNetwork, &Core::Network::finished, this, &XdgUrl::_downloaded); + connect(_network, &Core::Network::finished, this, &XdgUrl::_downloaded); } QJsonObject XdgUrl::_parse() @@ -83,37 +83,20 @@ QString XdgUrl::_convertPathString(const QString &path) QJsonObject XdgUrl::_loadDestinations() { QJsonObject destinations; - QJsonObject appConfigDestinations = _appConfig->get("destinations"); - QJsonObject appConfigDestinationsAlias = _appConfig->get("destinations_alias"); - QJsonObject userConfigDestinations = _userConfig->get("destinations"); - QJsonObject userConfigDestinationsAlias = _userConfig->get("destinations_alias"); + QJsonObject configDestinations = _config->get("destinations"); + QJsonObject configDestinationsAlias = _config->get("destinations_alias"); - foreach (const QString key, appConfigDestinations.keys()) { - destinations[key] = _convertPathString(appConfigDestinations[key].toString()); + foreach (const QString key, configDestinations.keys()) { + destinations[key] = _convertPathString(configDestinations[key].toString()); } - foreach (const QString key, appConfigDestinationsAlias.keys()) { - QString value = appConfigDestinationsAlias[key].toString(); + foreach (const QString key, configDestinationsAlias.keys()) { + QString value = configDestinationsAlias[key].toString(); if (destinations.contains(value)) { destinations[key] = destinations.value(value); } } - if (!userConfigDestinations.isEmpty()) { - foreach (const QString key, userConfigDestinations.keys()) { - destinations[key] = _convertPathString(userConfigDestinations[key].toString()); - } - } - - if (!userConfigDestinationsAlias.isEmpty()) { - foreach (const QString key, userConfigDestinationsAlias.keys()) { - QString value = userConfigDestinationsAlias[key].toString(); - if (destinations.contains(value)) { - destinations[key] = destinations.value(value); - } - } - } - return destinations; } @@ -247,7 +230,7 @@ void XdgUrl::_downloaded(QNetworkReply *reply) if (refreshUrl.startsWith("/")) { refreshUrl = reply->url().authority() + refreshUrl; } - _asyncNetwork->get(QUrl(refreshUrl)); + _network->get(QUrl(refreshUrl)); return; } @@ -300,7 +283,7 @@ void XdgUrl::process() */ if (isValid()) { - _asyncNetwork->get(QUrl(_metadata["url"].toString())); + _network->get(QUrl(_metadata["url"].toString())); } } diff --git a/src/handlers/xdgurl.h b/src/handlers/xdgurl.h index d3d87f3..e4f0793 100644 --- a/src/handlers/xdgurl.h +++ b/src/handlers/xdgurl.h @@ -19,15 +19,14 @@ class XdgUrl : public QObject private: QString _xdgUrl; - Core::Config *_appConfig; - Core::Config *_userConfig; - Core::Network *_asyncNetwork; + Core::Config *_config; + Core::Network *_network; QJsonObject _metadata; QJsonObject _destinations; public: - explicit XdgUrl(const QString &xdgUrl, Core::Config *appConfig, Core::Config *userConfig, Core::Network *asyncNetwork, QObject *parent = 0); + explicit XdgUrl(const QString &xdgUrl, Core::Config *config, Core::Network *network, QObject *parent = 0); private: QJsonObject _parse(); diff --git a/src/main.cpp b/src/main.cpp index 3c2c8af..d277dbd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,28 +12,26 @@ #include "core/config.h" #include "core/network.h" #include "handlers/xdgurl.h" -#include "utility/file.h" int main(int argc, char *argv[]) { // Init //QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // Qt 5.6 or higher QGuiApplication app(argc, argv); + Core::Config *config = new Core::Config(":/configs"); + Core::Network *network = new Core::Network(true); - Core::Config *appConfig = new Core::Config(":/configs"); - QJsonObject appConfigApplication = appConfig->get("application"); - Core::Config *userConfig = new Core::Config(Utility::File::xdgConfigHomePath() + "/" + appConfigApplication["id"].toString()); - Core::Network *asyncNetwork = new Core::Network(true); + QJsonObject configApplication = config->get("application"); - app.setApplicationName(appConfigApplication["name"].toString()); - app.setApplicationVersion(appConfigApplication["version"].toString()); - app.setOrganizationName(appConfigApplication["organization"].toString()); - app.setOrganizationDomain(appConfigApplication["domain"].toString()); - app.setWindowIcon(QIcon::fromTheme(appConfigApplication["id"].toString(), QIcon(appConfigApplication["icon"].toString()))); + app.setApplicationName(configApplication["name"].toString()); + app.setApplicationVersion(configApplication["version"].toString()); + app.setOrganizationName(configApplication["organization"].toString()); + app.setOrganizationDomain(configApplication["domain"].toString()); + app.setWindowIcon(QIcon::fromTheme(configApplication["id"].toString(), QIcon(configApplication["icon"].toString()))); // Setup CLI QCommandLineParser clParser; - clParser.setApplicationDescription(appConfigApplication["description"].toString()); + clParser.setApplicationDescription(configApplication["description"].toString()); clParser.addHelpOption(); clParser.addVersionOption(); clParser.addPositionalArgument("xdgurl", "XDG-URL"); @@ -50,7 +48,7 @@ int main(int argc, char *argv[]) // Setup QML QQmlApplicationEngine qmlAppEngine; QQmlContext *qmlContext = qmlAppEngine.rootContext(); - qmlContext->setContextProperty("xdgUrlHandler", new Handlers::XdgUrl(xdgUrl, appConfig, userConfig, asyncNetwork)); + qmlContext->setContextProperty("xdgUrlHandler", new Handlers::XdgUrl(xdgUrl, config, network)); qmlAppEngine.load(QUrl("qrc:/qml/main.qml")); return app.exec(); -- GitLab