diff --git a/src/handlers/xdgurl.cpp b/src/handlers/xdgurl.cpp
index 09a449e3fe1958002823fb195f5e4ea7692df98b..5175275ffc9879635e07a175513eb571a3665e9c 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 340438de8e90ed211a2db7359d52c30f492089fe..ed74ef8bb5cadd3b3c651784e30b41c752df9ab4 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();