From 59a411d7998b8fe2236262fb2f852e89c4831fab Mon Sep 17 00:00:00 2001 From: kh1 Date: Fri, 25 Nov 2011 13:50:09 +0100 Subject: Extend Settings class to store proxy settings. Change-Id: I37589a25e294c63d5930ff9120f1af2063341df1 Reviewed-by: Niels Weber Reviewed-by: Tim Jenssen --- installerbuilder/libinstaller/settings.cpp | 40 ++++++++++++++++++++++++++++++ installerbuilder/libinstaller/settings.h | 21 ++++++++++++++++ 2 files changed, 61 insertions(+) (limited to 'installerbuilder') diff --git a/installerbuilder/libinstaller/settings.cpp b/installerbuilder/libinstaller/settings.cpp index 33143e2a0..cdda2a2ec 100644 --- a/installerbuilder/libinstaller/settings.cpp +++ b/installerbuilder/libinstaller/settings.cpp @@ -61,6 +61,10 @@ static const QLatin1String scUninstallerIniFile("UninstallerIniFile"); static const QLatin1String scRemoteRepositories("RemoteRepositories"); static const QLatin1String scSigningCertificate("SigningCertificate"); +static const QLatin1String scFtpProxy("FtpProxy"); +static const QLatin1String scHttpProxy("HttpProxy"); +static const QLatin1String scProxyType("ProxyType"); + template static QSet variantListToSet(const QVariantList &list) { @@ -466,3 +470,39 @@ QVariantHash Settings::subTitlesForPage(const QString &pageName) const return QVariantHash(); return variant.value(); } + +Settings::ProxyType Settings::proxyType() const +{ + return Settings::ProxyType(d->m_data.value(scProxyType, Settings::NoProxy).toInt()); +} + +void Settings::setProxyType(Settings::ProxyType type) +{ + d->m_data.insert(scProxyType, type); +} + +QNetworkProxy Settings::ftpProxy() const +{ + const QVariant variant = d->m_data.value(scFtpProxy); + if (variant.canConvert()) + return variant.value(); + return QNetworkProxy(); +} + +void Settings::setFtpProxy(const QNetworkProxy &proxy) +{ + d->m_data.insert(scFtpProxy, QVariant::fromValue(proxy)); +} + +QNetworkProxy Settings::httpProxy() const +{ + const QVariant variant = d->m_data.value(scHttpProxy); + if (variant.canConvert()) + return variant.value(); + return QNetworkProxy(); +} + +void Settings::setHttpProxy(const QNetworkProxy &proxy) +{ + d->m_data.insert(scHttpProxy, QVariant::fromValue(proxy)); +} diff --git a/installerbuilder/libinstaller/settings.h b/installerbuilder/libinstaller/settings.h index 80a54e48d..aa3123d8f 100644 --- a/installerbuilder/libinstaller/settings.h +++ b/installerbuilder/libinstaller/settings.h @@ -33,6 +33,10 @@ #include #include +#include + +Q_DECLARE_METATYPE(QNetworkProxy) + namespace QInstaller { class Repository; @@ -41,6 +45,12 @@ class INSTALLER_EXPORT Settings Q_DECLARE_TR_FUNCTIONS(Settings) public: + enum ProxyType { + NoProxy, + SystemProxy, + UserDefinedProxy + }; + explicit Settings(); ~Settings(); @@ -99,6 +109,15 @@ public: QVariantHash titlesForPage(const QString &pageName) const; QVariantHash subTitlesForPage(const QString &pageName) const; + Settings::ProxyType proxyType() const; + void setProxyType(Settings::ProxyType type); + + QNetworkProxy ftpProxy() const; + void setFtpProxy(const QNetworkProxy &proxy); + + QNetworkProxy httpProxy() const; + void setHttpProxy(const QNetworkProxy &proxy); + private: class Private; QSharedDataPointer d; @@ -106,4 +125,6 @@ private: } +Q_DECLARE_METATYPE(QInstaller::Settings) + #endif // SETTINGS_H -- cgit v1.2.3