diff options
6 files changed, 29 insertions, 8 deletions
diff --git a/doc/src/plugins/nokia.qdoc b/doc/src/plugins/nokia.qdoc index 9634333c..cb5cd6f4 100644 --- a/doc/src/plugins/nokia.qdoc +++ b/doc/src/plugins/nokia.qdoc @@ -67,7 +67,9 @@ The following table lists optional parameters that can be passed to the Nokia pl \li Client token part of the app_id/token pair for the service used for authentication by all managers. \row \li proxy - \li Proxy server URL used by all managers. + \li Proxy server URL used by all managers. For usage of the system proxy just pass "system" as value. + + \note See the notes in \l{QNetworkProxy::systemProxyForQuery}{QNetworkProxy} for further information. \row \li mapping.host \li Map tile service URL used by mapping manager. @@ -110,7 +112,7 @@ application. \code Plugin { name: "nokia" - PluginParameter { name: "proxy"; value: "http://127.0.0.1:8080" } + PluginParameter { name: "proxy"; value: "system" } PluginParameter { name: "token"; value: "abcdefg12345" } } \endcode @@ -119,7 +121,7 @@ Plugin { \code QMap<QString,QVariant> params; -params["proxy"] = "http://127.0.0.1:8080"; +params["proxy"] = "system"; params["token"] = "abcdefg12345"; QGeoServiceProvider *gsp = new QGeoServiceProvider("nokia", params); diff --git a/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp b/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp index 1d2636e6..3513abf7 100644 --- a/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeocodingmanagerengine_nokia.cpp @@ -53,6 +53,7 @@ #include <qgeoaddress.h> #include <qgeocoordinate.h> #include <QNetworkProxy> +#include <QNetworkProxyFactory> #include <QUrl> #include <QMap> #include <QStringList> @@ -67,7 +68,7 @@ QGeocodingManagerEngineNokia::QGeocodingManagerEngineNokia(const QMap<QString, Q if (parameters.contains("proxy")) { QString proxy = parameters.value("proxy").toString(); - if (!proxy.isEmpty()) { + if (!proxy.isEmpty() && proxy.toLower() != QLatin1String("system")) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_networkManager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, @@ -76,6 +77,9 @@ QGeocodingManagerEngineNokia::QGeocodingManagerEngineNokia(const QMap<QString, Q proxyUrl.userName(), proxyUrl.password())); } + } else if (!proxy.isEmpty()) { + if (QNetworkProxy::applicationProxy().type() == QNetworkProxy::NoProxy) + QNetworkProxyFactory::setUseSystemConfiguration(true); } } diff --git a/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp b/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp index bc6e8234..4ecc338b 100644 --- a/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeoroutingmanagerengine_nokia.cpp @@ -51,6 +51,7 @@ #include <QStringList> #include <QNetworkProxy> +#include <QNetworkProxyFactory> #include <QUrl> #include <qgeoboundingbox.h> @@ -69,7 +70,7 @@ QGeoRoutingManagerEngineNokia::QGeoRoutingManagerEngineNokia(const QMap<QString, if (proxy.isEmpty()) proxy = parameters.value("routing.proxy").toString(); - if (!proxy.isEmpty()) { + if (!proxy.isEmpty() && proxy.toLower() != QLatin1String("system")) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_networkManager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, @@ -78,6 +79,9 @@ QGeoRoutingManagerEngineNokia::QGeoRoutingManagerEngineNokia(const QMap<QString, proxyUrl.userName(), proxyUrl.password())); } + } else if (!proxy.isEmpty()) { + if (QNetworkProxy::applicationProxy().type() == QNetworkProxy::NoProxy) + QNetworkProxyFactory::setUseSystemConfiguration(true); } } diff --git a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp index 9fe4120a..ad4e56d6 100644 --- a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp @@ -55,6 +55,7 @@ #include <QNetworkAccessManager> #include <QNetworkProxy> +#include <QNetworkProxyFactory> #include <QSize> #include <QDir> #include <QUrl> @@ -91,7 +92,7 @@ bool QGeoTileFetcherNokia::init() if (proxy.isEmpty()) proxy = m_parameters.value("mapping.proxy").toString(); - if (!proxy.isEmpty()) { + if (!proxy.isEmpty() && proxy.toLower() != QLatin1String("system")) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_networkManager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, @@ -100,6 +101,9 @@ bool QGeoTileFetcherNokia::init() proxyUrl.userName(), proxyUrl.password())); } + } else if (!proxy.isEmpty()) { + if (QNetworkProxy::applicationProxy().type() == QNetworkProxy::NoProxy) + QNetworkProxyFactory::setUseSystemConfiguration(true); } } diff --git a/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav1.cpp b/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav1.cpp index f658d9ee..fe1683f6 100644 --- a/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav1.cpp +++ b/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav1.cpp @@ -75,7 +75,7 @@ QPlaceManagerEngineNokiaV1::QPlaceManagerEngineNokiaV1(const QMap<QString, QVari if (proxy.isEmpty()) proxy = parameters.value("places.proxy").toString(); - if (!proxy.isEmpty()) { + if (!proxy.isEmpty() && proxy.toLower() != QLatin1String("system")) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { QPlaceRestManager::instance()->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, @@ -84,6 +84,9 @@ QPlaceManagerEngineNokiaV1::QPlaceManagerEngineNokiaV1(const QMap<QString, QVari proxyUrl.userName(), proxyUrl.password())); } + } else if (!proxy.isEmpty()) { + if (QNetworkProxy::applicationProxy().type() == QNetworkProxy::NoProxy) + QNetworkProxyFactory::setUseSystemConfiguration(true); } } diff --git a/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp b/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp index d716b29f..fe43d6ed 100644 --- a/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp +++ b/src/plugins/geoservices/nokia/qplacemanagerengine_nokiav2.cpp @@ -59,6 +59,7 @@ #include <QtCore/QJsonDocument> #include <QtCore/QJsonObject> #include <QtNetwork/QNetworkProxy> +#include <QtNetwork/QNetworkProxyFactory> #ifdef USE_CHINA_NETWORK_REGISTRATION #include <QtSystemInfo/QNetworkInfo> #endif @@ -99,7 +100,7 @@ QPlaceManagerEngineNokiaV2::QPlaceManagerEngineNokiaV2(const QMap<QString, QVari if (proxy.isEmpty()) proxy = parameters.value("places.proxy").toString(); - if (!proxy.isEmpty()) { + if (!proxy.isEmpty() && proxy.toLower() != QLatin1String("system")) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_manager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, @@ -108,6 +109,9 @@ QPlaceManagerEngineNokiaV2::QPlaceManagerEngineNokiaV2(const QMap<QString, QVari proxyUrl.userName(), proxyUrl.password())); } + } else if (!proxy.isEmpty()) { + if (QNetworkProxy::applicationProxy().type() == QNetworkProxy::NoProxy) + QNetworkProxyFactory::setUseSystemConfiguration(true); } } |