From 7273a3e3f079d0a4c5d615716aacf74508bb6105 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Wed, 12 Oct 2016 22:20:17 +0900
Subject: [PATCH] _parse() and _loadDestinations() methods

---
 src/handlers/xdgurl.cpp | 68 +++++++++++++++++++----------------------
 src/handlers/xdgurl.h   |  4 +--
 2 files changed, 33 insertions(+), 39 deletions(-)

diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp
index e5323b2..db744f3 100644
--- a/src/handlers/xdgurl.cpp
+++ b/src/handlers/xdgurl.cpp
@@ -18,49 +18,63 @@ namespace Handlers {
 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();
+    _parse();
+    _loadDestinations();
 
     connect(_network, &Core::Network::finished, this, &XdgUrl::_downloaded);
 }
 
-QJsonObject XdgUrl::_parse()
+void XdgUrl::_parse()
 {
     QUrl url(_xdgUrl);
     QUrlQuery query(url);
-    QJsonObject metadata;
 
-    metadata["scheme"] = QString("xdg");
-    metadata["command"] = QString("download");
-    metadata["url"] = QString("");
-    metadata["type"] = QString("downloads");
-    metadata["filename"] = QString("");
+    _metadata["scheme"] = QString("xdg");
+    _metadata["command"] = QString("download");
+    _metadata["url"] = QString("");
+    _metadata["type"] = QString("downloads");
+    _metadata["filename"] = QString("");
 
     if (!url.scheme().isEmpty()) {
-        metadata["scheme"] = url.scheme();
+        _metadata["scheme"] = url.scheme();
     }
 
     if (!url.host().isEmpty()) {
-        metadata["command"] = url.host();
+        _metadata["command"] = url.host();
     }
 
     if (query.hasQueryItem("url") && !query.queryItemValue("url").isEmpty()) {
-        metadata["url"] = query.queryItemValue("url", QUrl::FullyDecoded);
+        _metadata["url"] = query.queryItemValue("url", QUrl::FullyDecoded);
     }
 
     if (query.hasQueryItem("type") && !query.queryItemValue("type").isEmpty()) {
-        metadata["type"] = query.queryItemValue("type", QUrl::FullyDecoded);
+        _metadata["type"] = query.queryItemValue("type", QUrl::FullyDecoded);
     }
 
     if (query.hasQueryItem("filename") && !query.queryItemValue("filename").isEmpty()) {
-        metadata["filename"] = QUrl(query.queryItemValue("filename", QUrl::FullyDecoded)).fileName();
+        _metadata["filename"] = QUrl(query.queryItemValue("filename", QUrl::FullyDecoded)).fileName();
     }
 
-    if (!metadata["url"].toString().isEmpty() && metadata["filename"].toString().isEmpty()) {
-        metadata["filename"] = QUrl(metadata["url"].toString()).fileName();
+    if (!_metadata["url"].toString().isEmpty() && _metadata["filename"].toString().isEmpty()) {
+        _metadata["filename"] = QUrl(_metadata["url"].toString()).fileName();
     }
+}
 
-    return metadata;
+void XdgUrl::_loadDestinations()
+{
+    QJsonObject configDestinations = _config->get("destinations");
+    QJsonObject configDestinationsAlias = _config->get("destinations_alias");
+
+    foreach (const QString key, configDestinations.keys()) {
+        _destinations[key] = _convertPathString(configDestinations[key].toString());
+    }
+
+    foreach (const QString key, configDestinationsAlias.keys()) {
+        QString value = configDestinationsAlias[key].toString();
+        if (_destinations.contains(value)) {
+            _destinations[key] = _destinations.value(value);
+        }
+    }
 }
 
 QString XdgUrl::_convertPathString(const QString &path)
@@ -80,26 +94,6 @@ QString XdgUrl::_convertPathString(const QString &path)
     return newPath;
 }
 
-QJsonObject XdgUrl::_loadDestinations()
-{
-    QJsonObject destinations;
-    QJsonObject configDestinations = _config->get("destinations");
-    QJsonObject configDestinationsAlias = _config->get("destinations_alias");
-
-    foreach (const QString key, configDestinations.keys()) {
-        destinations[key] = _convertPathString(configDestinations[key].toString());
-    }
-
-    foreach (const QString key, configDestinationsAlias.keys()) {
-        QString value = configDestinationsAlias[key].toString();
-        if (destinations.contains(value)) {
-            destinations[key] = destinations.value(value);
-        }
-    }
-
-    return destinations;
-}
-
 void XdgUrl::_saveDownloadedFile(QNetworkReply *reply)
 {
     QJsonObject result;
diff --git a/src/handlers/xdgurl.h b/src/handlers/xdgurl.h
index e4f0793..e0478e0 100644
--- a/src/handlers/xdgurl.h
+++ b/src/handlers/xdgurl.h
@@ -29,9 +29,9 @@ public:
     explicit XdgUrl(const QString &xdgUrl, Core::Config *config, Core::Network *network, QObject *parent = 0);
 
 private:
-    QJsonObject _parse();
+    void _parse();
+    void _loadDestinations();
     QString _convertPathString(const QString &path);
-    QJsonObject _loadDestinations();
     void _saveDownloadedFile(QNetworkReply *reply);
     void _installDownloadedFile(QNetworkReply *reply);
 
-- 
GitLab