+void NetworkReply::downloadProgress(qint64 bytesReceived, qint64 /* bytesTotal */) {
+ // qDebug() << "Downloading" << bytesReceived << bytesTotal;
+ if (bytesReceived > 0) {
+ readTimeoutTimer->stop();
+ disconnect(networkReply, SIGNAL(downloadProgress(qint64,qint64)),
+ this, SLOT(downloadProgress(qint64,qint64)));
+ }
+}
+
+void NetworkReply::readTimeout() {
+ // qDebug() << "HTTP read timeout" << networkReply->url();
+ networkReply->disconnect();
+ networkReply->abort();
+
+ QNetworkReply *retryReply = The::http()->simpleGet(networkReply->url(), networkReply->operation());
+
+ setParent(retryReply);
+ networkReply->deleteLater();
+ networkReply = retryReply;
+
+ // when the request is finished we'll invoke the target method
+ connect(networkReply, SIGNAL(finished()), this, SLOT(finished()), Qt::AutoConnection);
+
+ // monitor downloadProgress to impl timeout
+ connect(networkReply, SIGNAL(downloadProgress(qint64,qint64)),
+ SLOT(downloadProgress(qint64,qint64)), Qt::AutoConnection);
+ readTimeoutTimer->start();
+
+ // error signal
+ connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
+ SLOT(requestError(QNetworkReply::NetworkError)));
+
+ // emit error(networkReply);
+}
+