@@ -212,7 +212,9 @@ QNetworkReply *QgsNetworkAccessManager::createRequest( QNetworkAccessManager::Op
212
212
213
213
emit requestCreated ( reply );
214
214
215
- // abort request, when network timeout happens
215
+ // The timer will call abortRequest slot to abort the connection if needed.
216
+ // The timer is stopped by the finished signal and is restarted on downloadProgress and
217
+ // uploadProgress.
216
218
QTimer *timer = new QTimer ( reply );
217
219
timer->setObjectName ( " timeoutTimer" );
218
220
connect ( timer, SIGNAL ( timeout () ), this , SLOT ( abortRequest () ) );
@@ -221,6 +223,8 @@ QNetworkReply *QgsNetworkAccessManager::createRequest( QNetworkAccessManager::Op
221
223
222
224
connect ( reply, SIGNAL ( downloadProgress ( qint64, qint64 ) ), timer, SLOT ( start () ) );
223
225
connect ( reply, SIGNAL ( uploadProgress ( qint64, qint64 ) ), timer, SLOT ( start () ) );
226
+ connect ( reply, SIGNAL ( finished ( ) ), timer, SLOT ( stop ( ) ) );
227
+ QgsDebugMsgLevel ( QString ( " Created [reply:%1]" ).arg (( qint64 ) reply, 0 , 16 ), 3 );
224
228
225
229
return reply;
226
230
}
@@ -233,16 +237,15 @@ void QgsNetworkAccessManager::abortRequest()
233
237
QNetworkReply *reply = qobject_cast<QNetworkReply *>( timer->parent () );
234
238
Q_ASSERT ( reply );
235
239
236
- QgsDebugMsg ( QString ( " Abort [ reply:%1] " ). arg (( qint64 ) reply, 0 , 16 ) );
237
-
240
+ reply-> abort ( );
241
+ QgsDebugMsgLevel ( QString ( " Abort [reply:%1] %2 " ). arg (( qint64 ) reply, 0 , 16 ). arg ( reply-> url (). toString () ), 3 );
238
242
QgsMessageLog::logMessage ( tr ( " Network request %1 timed out" ).arg ( reply->url ().toString () ), tr ( " Network" ) );
239
-
240
- if ( reply->isRunning () )
241
- reply->close ();
242
-
243
+ // Notify the application
243
244
emit requestTimedOut ( reply );
245
+
244
246
}
245
247
248
+
246
249
QString QgsNetworkAccessManager::cacheLoadControlName ( QNetworkRequest::CacheLoadControl theControl )
247
250
{
248
251
switch ( theControl )
0 commit comments