Copyright 2010 Comarch S.A.
*******************************************************************************/
-
/*!
- \file HttpDownloader.h
- \author Bartosz Szatkowski <bulislaw@linux.com>
+ \file HttpDownloader.h
+ \author Bartosz Szatkowski <bulislaw@linux.com>
*/
-
#include "HttpDownloader.h"
-HttpDownloader::HttpDownloader(QObject *parent) {
+HttpDownloader::HttpDownloader(QObject *parent): QObject(parent) {
http = new QHttp();
//connect(http, SIGNAL(requestFinished(int, bool)), this,
// SLOT(getPageFinished()));
manager = new QNetworkAccessManager;
connect(manager, SIGNAL(finished(QNetworkReply*)),
SLOT(downloadFinished(QNetworkReply*)));
+
+ //connect(http, SIGNAL())
}
// Following line is crucial becouse sourceforge wont redirect correctly
// if no user-agent is supplied
request.setRawHeader("User-Agent", "Wget/1.12 (linux-gnu)");
- manager->get(request);
-
+ currentReply = manager->get(request);
+ connect(currentReply, SIGNAL(downloadProgress(qint64,qint64)),
+ this, SIGNAL(progress(qint64,qint64)));
}
+
void HttpDownloader::downloadFinished(QNetworkReply *reply) {
+ disconnect(reply, SIGNAL(downloadProgress(qint64,qint64)),
+ this, SIGNAL(progress(qint64,qint64)));
+ if(reply->error() != QNetworkReply::NoError) {
+ Q_EMIT error(reply->errorString());
+ return;
+ }
+
QUrl r = reply->attribute(QNetworkRequest::RedirectionTargetAttribute)
.toUrl();
QNetworkRequest req;
req.setRawHeader("User-Agent", "Wget/1.12 (linux-gnu)");
req.setUrl(r);
- manager->get(req);
+ currentReply = manager->get(req);
+ connect(currentReply, SIGNAL(downloadProgress(qint64,qint64)),
+ this, SIGNAL(progress(qint64,qint64)));
}
else {
QFile resultFile(destFile);
Q_EMIT finished();
}
}
+
+
+void HttpDownloader::kill() {
+ http->abort();
+}