vnote/src/vdownloader.cpp
2018-02-26 19:30:06 +08:00

53 lines
1.1 KiB
C++

#include "vdownloader.h"
#include "utils/vutils.h"
VDownloader::VDownloader(QObject *parent)
: QObject(parent)
{
connect(&webCtrl, &QNetworkAccessManager::finished,
this, &VDownloader::handleDownloadFinished);
}
void VDownloader::handleDownloadFinished(QNetworkReply *reply)
{
data = reply->readAll();
reply->deleteLater();
emit downloadFinished(data, reply->url().toString());
}
void VDownloader::download(const QUrl &p_url)
{
if (!p_url.isValid()) {
return;
}
QNetworkRequest request(p_url);
webCtrl.get(request);
}
QByteArray VDownloader::downloadSync(const QUrl &p_url)
{
QByteArray data;
if (!p_url.isValid()) {
return data;
}
bool finished = false;
QNetworkAccessManager nam;
connect(&nam, &QNetworkAccessManager::finished,
[&data, &finished](QNetworkReply *p_reply) {
data = p_reply->readAll();
p_reply->deleteLater();
finished = true;
});
nam.get(QNetworkRequest(p_url));
while (!finished) {
VUtils::sleepWait(100);
}
return data;
}