From b8217dc0bb90b518a0006e1708287695c26b66ba Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 20 Oct 2022 10:13:29 +0200 Subject: Adapt to QNetworkAccessManager differences in Qt6 Task-number: QTIFW-1829 Change-Id: Ieded786fc608e10fd9068e8f79227e43c5ff3717 Reviewed-by: Arttu Tarkiainen --- src/libs/kdtools/filedownloader.cpp | 36 ++++++++++++++++++++++++++++++------ src/libs/kdtools/filedownloader_p.h | 4 ++++ src/sdk/installerbase.cpp | 2 +- src/sdk/sdkapp.h | 7 +++++++ 4 files changed, 42 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/libs/kdtools/filedownloader.cpp b/src/libs/kdtools/filedownloader.cpp index a764b6ea4..2c423c0e3 100644 --- a/src/libs/kdtools/filedownloader.cpp +++ b/src/libs/kdtools/filedownloader.cpp @@ -53,6 +53,10 @@ #include #include +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include +#endif + using namespace KDUpdater; using namespace QInstaller; @@ -1192,9 +1196,8 @@ struct KDUpdater::HttpDownloader::Private disconnect(http, &QNetworkReply::finished, q, &HttpDownloader::httpReqFinished); disconnect(http, &QNetworkReply::downloadProgress, q, &HttpDownloader::httpReadProgress); - void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) = &QNetworkReply::error; - disconnect(http, errorSignal, q, &HttpDownloader::httpError); + disconnect(http, &QNetworkReply::errorOccurred, q, &HttpDownloader::httpError); http->deleteLater(); } http = 0; @@ -1220,8 +1223,14 @@ KDUpdater::HttpDownloader::HttpDownloader(QObject *parent) #endif connect(&d->manager, &QNetworkAccessManager::authenticationRequired, this, &HttpDownloader::onAuthenticationRequired); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) connect(&d->manager, &QNetworkAccessManager::networkAccessibleChanged, this, &HttpDownloader::onNetworkAccessibleChanged); +#else + auto netInfo = QNetworkInformation::instance(); + connect(netInfo, &QNetworkInformation::reachabilityChanged, + this, &HttpDownloader::onReachabilityChanged); +#endif } @@ -1481,8 +1490,7 @@ void KDUpdater::HttpDownloader::startDownload(const QUrl &url) connect(d->http, &QNetworkReply::downloadProgress, this, &HttpDownloader::httpReadProgress); connect(d->http, &QNetworkReply::finished, this, &HttpDownloader::httpReqFinished); - void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) = &QNetworkReply::error; - connect(d->http, errorSignal, this, &HttpDownloader::httpError); + connect(d->http, &QNetworkReply::errorOccurred, this, &HttpDownloader::httpError); bool fileOpened = false; if (d->destFileName.isEmpty()) { @@ -1532,8 +1540,7 @@ void KDUpdater::HttpDownloader::resumeDownload() connect(d->http, &QNetworkReply::downloadProgress, this, &HttpDownloader::httpReadProgress); connect(d->http, &QNetworkReply::finished, this, &HttpDownloader::httpReqFinished); - void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) = &QNetworkReply::error; - connect(d->http, errorSignal, this, &HttpDownloader::httpError); + connect(d->http, &QNetworkReply::errorOccurred, this, &HttpDownloader::httpError); runDownloadSpeedTimer(); runDownloadDeadlineTimer(); } @@ -1575,6 +1582,7 @@ void KDUpdater::HttpDownloader::onAuthenticationRequired(QNetworkReply *reply, Q } } +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void KDUpdater::HttpDownloader::onNetworkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility accessible) { if (accessible == QNetworkAccessManager::NotAccessible) { @@ -1589,6 +1597,22 @@ void KDUpdater::HttpDownloader::onNetworkAccessibleChanged(QNetworkAccessManager } } } +#else +void KDUpdater::HttpDownloader::onReachabilityChanged(QNetworkInformation::Reachability newReachability) +{ + if (newReachability == QNetworkInformation::Reachability::Online) { + if (isDownloadPaused()) { + setDownloadPaused(false); + resumeDownload(); + } + } else { + d->shutDown(false); + setDownloadPaused(true); + setDownloadResumed(false); + stopDownloadDeadlineTimer(); + } +} +#endif #ifndef QT_NO_SSL diff --git a/src/libs/kdtools/filedownloader_p.h b/src/libs/kdtools/filedownloader_p.h index ec47e31ca..daafe9618 100644 --- a/src/libs/kdtools/filedownloader_p.h +++ b/src/libs/kdtools/filedownloader_p.h @@ -130,7 +130,11 @@ private Q_SLOTS: void httpDone(bool error); void httpReqFinished(); void onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void onNetworkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility accessible); +#else + void onReachabilityChanged(QNetworkInformation::Reachability newReachability); +#endif #ifndef QT_NO_SSL void onSslErrors(QNetworkReply* reply, const QList &errors); #endif diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index 20a4f312b..f9f535ee4 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2022 The Qt Company Ltd. +** Copyright (C) 2023 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h index ba542691e..42b2bee02 100644 --- a/src/sdk/sdkapp.h +++ b/src/sdk/sdkapp.h @@ -60,6 +60,10 @@ #include #include +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include +#endif + template class SDKApp : public T { @@ -71,6 +75,9 @@ public: , m_core(nullptr) { m_parser.parse(QCoreApplication::arguments()); +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + QNetworkInformation::loadDefaultBackend(); +#endif } virtual ~SDKApp() -- cgit v1.2.3