From kde-commits Thu Sep 20 10:15:44 2018 From: Aleix Pol Date: Thu, 20 Sep 2018 10:15:44 +0000 To: kde-commits Subject: [discover] libdiscover/backends/PackageKitBackend: Forward proxy information to the PackageKit daemo Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=153744179904532 Git commit e08bc8fd55b90895560a60cccc0d1b583c6e42a9 by Aleix Pol. Committed on 20/09/2018 at 10:13. Pushed by apol into branch 'master'. Forward proxy information to the PackageKit daemon At start and upon change. BUG: 398321 M +31 -3 libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp M +1 -0 libdiscover/backends/PackageKitBackend/PackageKitBackend.h https://commits.kde.org/discover/e08bc8fd55b90895560a60cccc0d1b583c6e42a9 diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp b= /libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp index eeab5e69..8ed581cc 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp +++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp @@ -39,14 +39,16 @@ #include #include #include +#include +#include +#include = #include #include #include = #include -#include -#include +#include = #include "utils.h" #include "config-paths.h" @@ -92,6 +94,13 @@ PackageKitBackend::PackageKitBackend(QObject* parent) connect(PackageKit::Daemon::global(), &PackageKit::Daemon::isRunningCh= anged, this, &PackageKitBackend::checkDaemonRunning); connect(m_reviews.data(), &OdrsReviewsBackend::ratingsReady, this, &Ab= stractResourcesBackend::emitRatingsReady); = + auto proxyWatch =3D new QFileSystemWatcher(this); + proxyWatch->addPath(QStandardPaths::writableLocation(QStandardPaths::C= onfigLocation) + QLatin1String("/kioslaverc")); + connect(proxyWatch, &QFileSystemWatcher::fileChanged, this, [this](){ + KProtocolManager::reparseConfiguration(); + updateProxy(); + }); + SourcesModel::global()->addSourcesBackend(new PackageKitSourcesBackend= (this)); = reloadPackageList(); @@ -104,6 +113,24 @@ PackageKitBackend::PackageKitBackend(QObject* parent) = PackageKitBackend::~PackageKitBackend() =3D default; = +void PackageKitBackend::updateProxy() +{ + + if (PackageKit::Daemon::isRunning()) { + static bool everHad =3D KProtocolManager::useProxy(); + if (!everHad && !KProtocolManager::useProxy()) + return; + + everHad =3D KProtocolManager::useProxy(); + PackageKit::Daemon::global()->setProxy(KProtocolManager::proxyFor(= QLatin1String("http")), + KProtocolManager::proxyFor(= QLatin1String("https")), + KProtocolManager::proxyFor(= QLatin1String("ftp")), + KProtocolManager::proxyFor(= QLatin1String("socks")), + {}, + {}); + } +} + bool PackageKitBackend::isFetching() const { return m_isFetching; @@ -598,7 +625,8 @@ void PackageKitBackend::checkDaemonRunning() { if (!PackageKit::Daemon::isRunning()) { qWarning() << "PackageKit stopped running!"; - } + } else + updateProxy(); } = AbstractBackendUpdater* PackageKitBackend::backendUpdater() const diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h b/l= ibdiscover/backends/PackageKitBackend/PackageKitBackend.h index 4cace1bc..5f593571 100644 --- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h +++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h @@ -100,6 +100,7 @@ class DISCOVERCOMMON_EXPORT PackageKitBackend : public = AbstractResourcesBackend void includePackagesToAdd(); void performDetailsFetch(); AppPackageKitResource* addComponent(const AppStream::Component& co= mponent, const QStringList& pkgNames); + void updateProxy(); = QScopedPointer m_appdata; PackageKitUpdater* m_updater;