HttpWorker added, performs a http request in a background thread

ComicVineDialog, work in progress...
This commit is contained in:
Luis Ángel San Martín
2013-09-09 11:39:58 +02:00
parent 2de876f5a9
commit a18401c2fb
13 changed files with 400 additions and 160 deletions

47
common/http_worker.cpp Normal file
View File

@ -0,0 +1,47 @@
#include "http_worker.h"
#include <QMessageBox>
#include <QUrl>
#include <QtGlobal>
#include <QStringList>
#include <QNetworkAccessManager>
#include <QEventLoop>
#include <QTimer>
#include <QNetworkRequest>
#include <QNetworkReply>
#define PREVIOUS_VERSION "6.0.0"
HttpWorker::HttpWorker(const QString & urlString)
:QThread(),url(urlString)
{
}
void HttpWorker::get()
{
this->start();
}
void HttpWorker::run()
{
QNetworkAccessManager manager;
QEventLoop q;
QTimer tT;
tT.setSingleShot(true);
connect(&tT, SIGNAL(timeout()), &q, SLOT(quit()));
connect(&manager, SIGNAL(finished(QNetworkReply*)),&q, SLOT(quit()));
QNetworkReply *reply = manager.get(QNetworkRequest(url));
tT.start(5000); // 5s timeout
q.exec();
if(tT.isActive()){
// download complete
emit dataReady(reply->readAll());
tT.stop();
} else {
emit timeout();
}
}