hopefully fixing the loading issue when the connection fails

This commit is contained in:
Hauke Schade 2013-07-29 21:49:41 +02:00
parent 59b237ee91
commit c07d636b03
2 changed files with 19 additions and 1 deletions

View file

@ -29,6 +29,7 @@ QNetworkAccessManager* MyNetworkManager::create(QObject *parent) {
connect(nam, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(onSslErrors(QNetworkReply*,QList<QSslError>)));
connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*)));
connect(nam, SIGNAL(started()), this, SLOT(onStarted()));
connect(nam, SIGNAL(error()), this, SLOT(onError()));
QNetworkDiskCache* diskCache = new QNetworkDiskCache(parent);
diskCache->setCacheDirectory(QDesktopServices::storageLocation(QDesktopServices::CacheLocation));
@ -42,7 +43,19 @@ QNetworkReply *MyNetworkAccessManager::createRequest( QNetworkAccessManager::Ope
this->started();
QNetworkRequest request(req);
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
return QNetworkAccessManager::createRequest(op, request, outgoingData);
QNetworkReply *reply = QNetworkAccessManager::createRequest(op, request, outgoingData);
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onError()));
return reply;
}
void MyNetworkAccessManager::onError() {
this->error();
}
void MyNetworkManager::onError() {
_numRequests--;
if (_numRequests == 0)
loadingChanged();
}
void MyNetworkManager::onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {

View file

@ -37,6 +37,7 @@ private slots:
void onSslErrors(QNetworkReply *reply, const QList<QSslError> &errors);
void onReplyFinished(QNetworkReply *reply);
void onStarted();
void onError();
private:
static QScopedPointer<MyNetworkManager> m_instance;
@ -48,8 +49,12 @@ class MyNetworkAccessManager : public QNetworkAccessManager {
public:
MyNetworkAccessManager(QObject *parent = 0) : QNetworkAccessManager(parent) { }
private slots:
void onError();
signals:
void started();
void error();
protected:
QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData = 0);