Skip to content
Snippets Groups Projects
Commit 8f6cf246 authored by akiraohgaki's avatar akiraohgaki
Browse files

Save downloaded file

parent 193e7d7c
No related branches found
No related tags found
No related merge requests found
......@@ -190,10 +190,29 @@ bool XdgUrl::_uncompressArchive(const QString &path, const QString &targetDir)
return false;
}
void XdgUrl::_saveDownloadedFile(const QTemporaryFile &temporaryFile)
void XdgUrl::_saveDownloadedFile(QNetworkReply *reply)
{
QJsonObject result;
QTemporaryFile temporaryFile;
if (!temporaryFile.open()) {
result["error"] = QString("save_error");
emit finished(Utility::Json::convertObjToStr(result));
return;
}
temporaryFile.write(reply->readAll());
QMimeDatabase mimeDb;
QString mimeType = mimeDb.mimeTypeForFile(temporaryFile.fileName()).name();
if (mimeType == "text/html" || mimeType == "application/xhtml+xml") {
result["error"] = QString("filetype_error");
emit finished(Utility::Json::convertObjToStr(result));
return;
}
QString destination = _destinations[_metadata["type"].toString()].toString();
QString path = destination + "/" + _metadata["filename"].toString();
......@@ -211,7 +230,7 @@ void XdgUrl::_saveDownloadedFile(const QTemporaryFile &temporaryFile)
emit finished(Utility::Json::convertObjToStr(result));
}
void XdgUrl::_installDownloadedFile(const QTemporaryFile &temporaryFile)
void XdgUrl::_installDownloadedFile(QNetworkReply *reply)
{
}
......@@ -240,30 +259,11 @@ void XdgUrl::_downloaded(QNetworkReply *reply)
return;
}
QTemporaryFile temporaryFile;
if (!temporaryFile.open()) {
result["error"] = QString("save_error");
emit finished(Utility::Json::convertObjToStr(result));
return;
}
temporaryFile.write(reply->readAll());
QMimeDatabase mimeDb;
QString mimeType = mimeDb.mimeTypeForFile(temporaryFile.fileName()).name();
if (mimeType == "text/html" || mimeType == "application/xhtml+xml") {
result["error"] = QString("filetype_error");
emit finished(Utility::Json::convertObjToStr(result));
return;
}
if (_metadata["command"].toString() == "download") {
_saveDownloadedFile(temporaryFile);
_saveDownloadedFile(reply);
}
else if (_metadata["command"].toString() == "install") {
_installDownloadedFile(temporaryFile);
_installDownloadedFile(reply);
}
}
......
......@@ -4,7 +4,6 @@
#include <QObject>
#include <QJsonObject>
class QTemporaryFile;
class QNetworkReply;
namespace Core {
......@@ -38,8 +37,8 @@ private:
QJsonObject _loadArchiveTypes();
bool _installPlasmapkg(const QString &path, const QString &type = "plasmoid");
bool _uncompressArchive(const QString &path, const QString &targetDir);
void _saveDownloadedFile(const QTemporaryFile &temporaryFile);
void _installDownloadedFile(const QTemporaryFile &temporaryFile);
void _saveDownloadedFile(QNetworkReply *reply);
void _installDownloadedFile(QNetworkReply *reply);
private slots:
void _downloaded(QNetworkReply *reply);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment