summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-11-25 14:35:32 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2011-11-28 13:15:12 +0100
commitd46bf58249c264be81535ad84a3be60f289a93ca (patch)
treebdd5b3d7c52b7248a130ead4e7cf986f720a34c1
parente7666985a46e40ff6569c4bc2f0e96987c5ab622 (diff)
Make it possible to set proxy factorys for the downloaders.
Change-Id: I1a728b60a196807fa8257b22e58165e2c55be787 Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
-rw-r--r--installerbuilder/installerbase/installerbase.cpp6
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp15
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.h9
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp6
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.h1
5 files changed, 34 insertions, 3 deletions
diff --git a/installerbuilder/installerbase/installerbase.cpp b/installerbuilder/installerbase/installerbase.cpp
index bf8fc270f..719ff0877 100644
--- a/installerbuilder/installerbase/installerbase.cpp
+++ b/installerbuilder/installerbase/installerbase.cpp
@@ -51,6 +51,7 @@
#include <kdselfrestarter.h>
#include <kdrunoncechecker.h>
+#include "kdupdaterfiledownloaderfactory.h"
#include <QtCore/QTranslator>
@@ -239,9 +240,8 @@ int main(int argc, char *argv[])
} else if (argument == QLatin1String("--verbose") || argument == QLatin1String("Verbose")) {
core.setVerbose(true);
} else if (argument == QLatin1String("--proxy")) {
-#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
- QNetworkProxyFactory::setUseSystemConfiguration(true);
-#endif
+ core.settings().setProxyType(QInstaller::Settings::SystemProxy);
+ KDUpdater::FileDownloaderFactory::instance().setProxyFactory(core.proxyFactory());
} else if (argument == QLatin1String("--show-virtual-components")
|| argument == QLatin1String("ShowVirtualComponents")) {
QFont f;
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp
index 4e836d468..fd3ff0cb4 100644
--- a/installerbuilder/libinstaller/packagemanagercore.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore.cpp
@@ -42,6 +42,7 @@
#include "getrepositoriesmetainfojob.h"
#include "messageboxhandler.h"
#include "packagemanagercore_p.h"
+#include "packagemanagerproxyfactory.h"
#include "progresscoordinator.h"
#include "qinstallerglobal.h"
#include "qprocesswrapper.h"
@@ -604,6 +605,20 @@ LocalPackagesHash PackageManagerCore::localInstalledPackages()
return d->localInstalledPackages();
}
+KDUpdater::FileDownloaderProxyFactory *PackageManagerCore::proxyFactory() const
+{
+ if (d->m_proxyFactory)
+ return d->m_proxyFactory->clone();
+ return new PackageManagerProxyFactory(this);
+}
+
+void PackageManagerCore::setProxyFactory(KDUpdater::FileDownloaderProxyFactory *factory)
+{
+ delete d->m_proxyFactory;
+ d->m_proxyFactory = factory;
+ KDUpdater::FileDownloaderFactory::instance().setProxyFactory(proxyFactory());
+}
+
PackagesList PackageManagerCore::remotePackages()
{
return d->remotePackages();
diff --git a/installerbuilder/libinstaller/packagemanagercore.h b/installerbuilder/libinstaller/packagemanagercore.h
index d46ff3770..ef460fa17 100644
--- a/installerbuilder/libinstaller/packagemanagercore.h
+++ b/installerbuilder/libinstaller/packagemanagercore.h
@@ -34,12 +34,18 @@
#include <QtCore/QStringList>
#include <QtCore/QVector>
+namespace KDUpdater {
+ class FileDownloaderProxyFactory;
+}
+
namespace QInstaller {
class Component;
class PackageManagerCorePrivate;
class Settings;
+// -- PackageManagerCore
+
class INSTALLER_EXPORT PackageManagerCore : public QObject
{
Q_OBJECT
@@ -88,6 +94,9 @@ public:
bool fetchLocalPackagesTree();
LocalPackagesHash localInstalledPackages();
+ KDUpdater::FileDownloaderProxyFactory *proxyFactory() const;
+ void setProxyFactory(KDUpdater::FileDownloaderProxyFactory *factory);
+
PackagesList remotePackages();
bool fetchRemotePackagesTree();
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp
index 36d064a33..bf3773a26 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp
@@ -47,6 +47,7 @@
#include <kdsavefile.h>
#include <kdselfrestarter.h>
+#include "kdupdaterfiledownloaderfactory.h"
#include <kdupdaterupdatesourcesinfo.h>
#include <kdupdaterupdateoperationfactory.h>
#include <kdupdaterupdatefinder.h>
@@ -160,6 +161,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core)
, m_repoFetched(false)
, m_updateSourcesAdded(false)
, m_componentsToInstallCalculated(false)
+ , m_proxyFactory(0)
{
}
@@ -181,6 +183,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, q
, m_updateSourcesAdded(false)
, m_magicBinaryMarker(magicInstallerMaker)
, m_componentsToInstallCalculated(false)
+ , m_proxyFactory(0)
{
connect(this, SIGNAL(installationStarted()), m_core, SIGNAL(installationStarted()));
connect(this, SIGNAL(installationFinished()), m_core, SIGNAL(installationFinished()));
@@ -201,7 +204,9 @@ PackageManagerCorePrivate::~PackageManagerCorePrivate()
// check for fake installer case
if (m_FSEngineClientHandler)
m_FSEngineClientHandler->setActive(false);
+
delete m_updateFinder;
+ delete m_proxyFactory;
}
/*!
@@ -594,6 +599,7 @@ void PackageManagerCorePrivate::initialize()
connect(m_repoMetaInfoJob, SIGNAL(infoMessage(KDJob*, QString)), this, SLOT(infoMessage(KDJob*,
QString)));
}
+ KDUpdater::FileDownloaderFactory::instance().setProxyFactory(m_core->proxyFactory());
}
QString PackageManagerCorePrivate::installerBinaryPath() const
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.h b/installerbuilder/libinstaller/packagemanagercore_p.h
index cc457857b..b7bf07342 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.h
+++ b/installerbuilder/libinstaller/packagemanagercore_p.h
@@ -241,6 +241,7 @@ private:
QSet<Component*> m_componentsToUninstall;
QString m_componentsToInstallError;
+ FileDownloaderProxyFactory *m_proxyFactory;
private:
// remove once we deprecate isSelected, setSelected etc...