mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 22:09:52 +08:00
53 lines
1.1 KiB
C++
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;
|
|
}
|