diff --git a/src/core/networkaccessmanager.cpp b/src/core/networkaccessmanager.cpp index 817039aee..dfdb2fcaf 100644 --- a/src/core/networkaccessmanager.cpp +++ b/src/core/networkaccessmanager.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "networkaccessmanager.h" #include "threadsafenetworkdiskcache.h" @@ -41,6 +42,22 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent) setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy); setCache(new ThreadSafeNetworkDiskCache(this)); + // Handle network state changes after system suspend/resume + // QNetworkInformation provides cross-platform network reachability monitoring in Qt 6 + if (QNetworkInformation::loadDefaultBackend()) { + QNetworkInformation *network_info = QNetworkInformation::instance(); + if (network_info) { + QObject::connect(network_info, &QNetworkInformation::reachabilityChanged, this, [this](QNetworkInformation::Reachability reachability) { + if (reachability == QNetworkInformation::Reachability::Online) { + // Clear connection cache to force reconnection after network becomes available + // This fixes issues after system suspend/resume + clearConnectionCache(); + clearAccessCache(); + } + }); + } + } + } QNetworkReply *NetworkAccessManager::createRequest(Operation op, const QNetworkRequest &network_request, QIODevice *outgoing_data) {