From 5f71287ee370b6fd7386018d96af09e647fd11b8 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 7 Oct 2016 20:30:01 +0900
Subject: [PATCH] Process

---
 src/handlers/xdgurl.cpp | 19 +++++++++----------
 src/handlers/xdgurl.h   |  6 +++---
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp
index 09a449e..5175275 100644
--- a/src/handlers/xdgurl.cpp
+++ b/src/handlers/xdgurl.cpp
@@ -3,6 +3,7 @@
 #include <QUrlQuery>
 #include <QMimeDatabase>
 #include <QProcess>
+#include <QNetworkReply>
 
 #include "../core/config.h"
 #include "../core/network.h"
@@ -188,20 +189,18 @@ bool XdgUrl::_uncompressArchive(const QString &path, const QString &targetDir)
     return false;
 }
 
-void XdgUrl::_download()
+/**
+ * Private slots
+ */
+
+void XdgUrl::_saveDownloadedFile(QNetworkReply *reply)
 {
-    return true;
 }
 
-void XdgUrl::_install()
+void XdgUrl::_installDownloadedFile(QNetworkReply *reply)
 {
-    return true;
 }
 
-/**
- * Private slots
- */
-
 /**
  * Public slots
  */
@@ -252,10 +251,10 @@ void XdgUrl::process()
 
     if (isValid()) {
         if (_metadata["command"].toString() == "download") {
-            _download();
+            connect(_asyncNetwork, &Core::Network::finished, this, &XdgUrl::_saveDownloadedFile);
         }
         else if (_metadata["command"].toString() == "install") {
-            _install();
+            connect(_asyncNetwork, &Core::Network::finished, this, &XdgUrl::_installDownloadedFile);
         }
     }
 }
diff --git a/src/handlers/xdgurl.h b/src/handlers/xdgurl.h
index 340438d..ed74ef8 100644
--- a/src/handlers/xdgurl.h
+++ b/src/handlers/xdgurl.h
@@ -4,7 +4,7 @@
 #include <QObject>
 #include <QJsonObject>
 
-//class QNetworkReply;
+class QNetworkReply;
 
 namespace Core {
 class Config;
@@ -37,10 +37,10 @@ private:
     QJsonObject _loadArchiveTypes();
     bool _installPlasmapkg(const QString &path, const QString &type = "plasmoid");
     bool _uncompressArchive(const QString &path, const QString &targetDir);
-    void _download();
-    void _install();
 
 private slots:
+    void _saveDownloadedFile(QNetworkReply *reply);
+    void _installDownloadedFile(QNetworkReply *reply);
 
 public slots:
     QString getXdgUrl();
-- 
GitLab