diff --git a/src/downloadthread.cpp b/src/downloadthread.cpp index 1e70c6c65..e9143ab07 100644 --- a/src/downloadthread.cpp +++ b/src/downloadthread.cpp @@ -40,21 +40,15 @@ enum ProxyType {HTTP=1, SOCKS5=2, HTTP_PW=3, SOCKS5_PW=4, SOCKS4=5}; /** Download Thread **/ downloadThread::downloadThread(QObject* parent) : QObject(parent) { - networkManager = new QNetworkAccessManager(this); - connect(networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*))); + connect(&networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*))); #ifndef QT_NO_OPENSSL - connect(networkManager, SIGNAL(sslErrors(QNetworkReply*,QList)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList))); + connect(&networkManager, SIGNAL(sslErrors(QNetworkReply*,QList)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList))); #endif } -downloadThread::~downloadThread(){ - qDebug("Deleting network manager"); - delete networkManager; - qDebug("Deleted network manager"); -} - void downloadThread::processDlFinished(QNetworkReply* reply) { - QString url = reply->url().toString(); + QString url = reply->url().toEncoded().data(); + qDebug("Download finished: %s", qPrintable(url)); if(reply->error() != QNetworkReply::NoError) { // Failure qDebug("Download failure (%s), reason: %s", qPrintable(url), qPrintable(errorCodeToString(reply->error()))); @@ -110,14 +104,14 @@ QNetworkReply* downloadThread::downloadUrl(QString url){ // Update proxy settings applyProxySettings(); // Process download request - QNetworkRequest request; - request.setUrl(QUrl::fromEncoded(url.toLocal8Bit())); + qDebug("url is %s", qPrintable(url)); + const QUrl &qurl = QUrl::fromEncoded(url.toLocal8Bit()); + QNetworkRequest request(qurl); // Spoof Firefox 3.5 user agent to avoid // Web server banning request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"); qDebug("Downloading %s...", request.url().toEncoded().data()); - qDebug("Header: %s", qPrintable(request.header(QNetworkRequest::LocationHeader).toString())); - return networkManager->get(request); + return networkManager.get(request); } void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) { @@ -169,7 +163,7 @@ void downloadThread::applyProxySettings() { } else { proxy.setType(QNetworkProxy::NoProxy); } - networkManager->setProxy(proxy); + networkManager.setProxy(proxy); } QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) { diff --git a/src/downloadthread.h b/src/downloadthread.h index 5c9fb2646..ed5ba1d74 100644 --- a/src/downloadthread.h +++ b/src/downloadthread.h @@ -42,7 +42,7 @@ class downloadThread : public QObject { Q_OBJECT private: - QNetworkAccessManager *networkManager; + QNetworkAccessManager networkManager; QHash redirect_mapping; signals: @@ -51,7 +51,6 @@ signals: public: downloadThread(QObject* parent); - ~downloadThread(); QNetworkReply* downloadUrl(QString url); void downloadTorrentUrl(QString url); //void setProxy(QString IP, int port, QString username, QString password);