32#include <QNetworkReply>
33#include <QNetworkRequest>
37#include "moc_qgsowsconnection.cpp"
89 : mConnName( connName )
94 const QString url =
settingsUrl->value( {mService.toLower(), mConnName} );
95 mConnectionInfo = url;
96 mUri.setParam( QStringLiteral(
"url" ), url );
99 const QString username =
settingsUsername->value( {mService.toLower(), mConnName} );
100 const QString password =
settingsPassword->value( {mService.toLower(), mConnName} );
101 if ( !username.isEmpty() )
104 mUri.setUsername( username );
105 mUri.setPassword( password );
108 const QString authcfg =
settingsAuthCfg->value( {mService.toLower(), mConnName} );
109 if ( !authcfg.isEmpty() )
111 mUri.setAuthConfigId( authcfg );
113 mConnectionInfo.append(
",authcfg=" + authcfg );
116 mUri.setHttpHeaders( httpHeaders );
118 if ( !referer.isEmpty() )
120 mConnectionInfo.append(
",referer=" + referer );
123 if ( mService.compare( QLatin1String(
"WMS" ), Qt::CaseInsensitive ) == 0
124 || mService.compare( QLatin1String(
"WCS" ), Qt::CaseInsensitive ) == 0 )
128 else if ( mService.compare( QLatin1String(
"WFS" ), Qt::CaseInsensitive ) == 0 )
133 QgsDebugMsgLevel( QStringLiteral(
"encoded uri: '%1'." ).arg( QString(
mUri.encodedUri() ) ), 4 );
143 return mConnectionInfo;
159 addCommonConnectionSettings(
uri, settingsKey );
163 uri.httpHeaders().setFromSettings( settings, settingsKey );
165 if ( settings.value( settingsKey + QStringLiteral(
"/ignoreGetMapURI" ),
false ).toBool() )
167 uri.setParam( QStringLiteral(
"IgnoreGetMapUrl" ), QStringLiteral(
"1" ) );
169 if ( settings.value( settingsKey + QStringLiteral(
"/ignoreGetFeatureInfoURI" ),
false ).toBool() )
171 uri.setParam( QStringLiteral(
"IgnoreGetFeatureInfoUrl" ), QStringLiteral(
"1" ) );
173 if ( settings.value( settingsKey + QStringLiteral(
"/smoothPixmapTransform" ),
false ).toBool() )
175 uri.setParam( QStringLiteral(
"SmoothPixmapTransform" ), QStringLiteral(
"1" ) );
177 if ( settings.value( settingsKey + QStringLiteral(
"/ignoreReportedLayerExtents" ),
false ).toBool() )
179 uri.setParam( QStringLiteral(
"IgnoreReportedLayerExtents" ), QStringLiteral(
"1" ) );
181 const QString dpiMode = settings.value( settingsKey + QStringLiteral(
"/dpiMode" ), QStringLiteral(
"all" ) ).toString();
182 if ( !dpiMode.isEmpty() )
184 uri.setParam( QStringLiteral(
"dpiMode" ), dpiMode );
186 const QString tilePixelRatio = settings.value( settingsKey + QStringLiteral(
"/tilePixelRatio" ),
"0" ).toString();
187 if ( tilePixelRatio != QLatin1String(
"0" ) )
189 uri.setParam( QStringLiteral(
"tilePixelRatio" ), tilePixelRatio );
197 addCommonConnectionSettings(
uri,
service, connName );
203 uri.setParam( QStringLiteral(
"IgnoreGetMapUrl" ), QStringLiteral(
"1" ) );
207 uri.setParam( QStringLiteral(
"IgnoreGetFeatureInfoUrl" ), QStringLiteral(
"1" ) );
211 uri.setParam( QStringLiteral(
"SmoothPixmapTransform" ), QStringLiteral(
"1" ) );
215 uri.setParam( QStringLiteral(
"IgnoreReportedLayerExtents" ), QStringLiteral(
"1" ) );
219 uri.setParam( QStringLiteral(
"dpiMode" ), QString::number(
static_cast<int>(
settingsDpiMode->value( {service.toLower(), connName} ) ) ) );
223 uri.setParam( QStringLiteral(
"tilePixelRatio" ), QString::number(
static_cast<int>(
settingsTilePixelRatio->value( {service.toLower(), connName} ) ) ) );
227 uri.setParam( QStringLiteral(
"featureCount" ), QString::number(
settingsFeatureCount->value( {service.toLower(), connName} ) ) );
236 addCommonConnectionSettings(
uri, settingsKey );
240 const QString version = settings.
value( settingsKey +
"/version" ).toString();
241 if ( !version.isEmpty() )
243 uri.setParam( QStringLiteral(
"version" ), version );
246 const QString maxnumfeatures = settings.value( settingsKey + QStringLiteral(
"/maxnumfeatures" ) ).toString();
247 if ( !maxnumfeatures.isEmpty() )
249 uri.setParam( QStringLiteral(
"maxNumFeatures" ), maxnumfeatures );
257 addCommonConnectionSettings(
uri,
service, connName );
260 if ( !version.isEmpty() )
262 uri.setParam( QStringLiteral(
"version" ), version );
266 if ( !maxnumFeatures.isEmpty() )
268 uri.setParam( QStringLiteral(
"maxNumFeatures" ), maxnumFeatures );
272 switch ( httpMethod )
279 uri.setParam( QStringLiteral(
"httpMethod" ), QStringLiteral(
"post" ) );
307void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &key )
311 if ( settings.
value( key + QStringLiteral(
"/ignoreAxisOrientation" ),
false ).toBool() )
313 uri.
setParam( QStringLiteral(
"IgnoreAxisOrientation" ), QStringLiteral(
"1" ) );
315 if ( settings.
value( key + QStringLiteral(
"/invertAxisOrientation" ),
false ).toBool() )
317 uri.setParam( QStringLiteral(
"InvertAxisOrientation" ), QStringLiteral(
"1" ) );
321void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &service,
const QString &connectionName )
326 uri.setParam( QStringLiteral(
"IgnoreAxisOrientation" ), QStringLiteral(
"1" ) );
330 uri.setParam( QStringLiteral(
"InvertAxisOrientation" ), QStringLiteral(
"1" ) );
@ SaveEnumFlagAsInt
The enum/flag will be saved as an integer value instead of text.
@ Undefined
Undefined (not scale).
HttpMethod
Different methods of HTTP requests.
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryString * settingsUrl
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryVariantMap * settingsHeaders
static const QgsSettingsEntryString * settingsContentEndpoint
static const QgsSettingsEntryString * settingsUrlPrefix
static const QgsSettingsEntryString * settingsAuthcfg
static const QgsSettingsEntryString * settingsCommunityEndpoint
Stores the component parts of a data source URI (e.g.
void setParam(const QString &key, const QString &value)
Sets a generic parameter value on the URI.
static const QgsSettingsEntryInteger * settingsFeatureCount
static const QgsSettingsEntryStringList * settingsAvailableImageFormats
static const QgsSettingsEntryBool * settingsPreferCoordinatesForWfsT11
static const QgsSettingsEntryEnumFlag< Qgis::HttpMethod > * settingsPreferredHttpMethod
static Q_DECL_DEPRECATED QgsDataSourceUri & addWmsWcsConnectionSettings(QgsDataSourceUri &uri, const QString &settingsKey)
Adds uri parameters relating to the settings for a WMS or WCS connection to a QgsDataSourceUri uri.
static QStringList connectionList(const QString &service)
Returns the list of connections for the specified service.
static const QgsSettingsEntryString * settingsPagingEnabled
static const QgsSettingsEntryString * settingsDefaultImageFormat
static const QgsSettingsEntryString * settingsMaxNumFeatures
static QgsSettingsTreeNamedListNode * sTreeOwsConnections
static const QgsSettingsEntryBool * settingsIgnoreGetFeatureInfoURI
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryBool * settingsReportedLayerExtents
static void setSelectedConnection(const QString &service, const QString &name)
Marks the specified connection for the specified service as selected.
static const QgsSettingsEntryString * settingsWfsFeatureMode
static const QgsSettingsEntryEnumFlag< Qgis::DpiMode > * settingsDpiMode
static const QgsSettingsEntryBool * settingsWfsForceInitialGetFeature
static const QgsSettingsEntryBool * settingsIgnoreAxisOrientation
static const QgsSettingsEntryString * settingsDefaultFeatureFormat
static const QgsSettingsEntryBool * settingsInvertAxisOrientation
static const QgsSettingsEntryString * settingsVersion
QString connectionInfo() const
Returns connection info string.
static void deleteConnection(const QString &service, const QString &name)
Deletes the connection for the specified service with the specified name.
static const QgsSettingsEntryString * settingsPagesize
static const QgsSettingsEntryString * settingsAuthCfg
static const QgsSettingsEntryEnumFlag< Qgis::TilePixelRatio > * settingsTilePixelRatio
static const QgsSettingsEntryVariantMap * settingsHeaders
static Q_DECL_DEPRECATED QgsDataSourceUri & addWfsConnectionSettings(QgsDataSourceUri &uri, const QString &settingsKey)
Adds uri parameters relating to the settings for a WFS connection to a QgsDataSourceUri uri.
QString connectionName() const
Returns the connection name.
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryBool * settingsSmoothPixmapTransform
static const QgsSettingsEntryString * settingsUrl
static QString selectedConnection(const QString &service)
Retrieves the selected connection for the specified service.
static const QgsSettingsEntryBool * settingsIgnoreGetMapURI
QgsOwsConnection(const QString &service, const QString &connName)
Constructor.
static const QgsSettingsEntryStringList * settingsAvailableFeatureFormats
QgsDataSourceUri uri() const
Returns the connection uri.
QString service() const
Returns a string representing the service type, e.g.
A boolean settings entry.
A template class for enum and flag settings entry.
An integer settings entry.
A string list settings entry.
A string list settings entry.
Stores settings for use within QGIS.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key.
static const QgsSettingsEntryString * settingsPassword
static const QgsSettingsEntryDouble * settingsTilePixelRatio
static const QgsSettingsEntryString * settingsInterpretation
static const QgsSettingsEntryString * settingsUsername
static const QgsSettingsEntryString * settingsAuthcfg
static const QgsSettingsEntryInteger * settingsZmin
static const QgsSettingsEntryBool * settingsHidden
static const QgsSettingsEntryInteger * settingsZmax
static const QgsSettingsEntryString * settingsUrl
static const QgsSettingsEntryVariantMap * settingsHeaders
#define Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_PUSH
#define QgsDebugMsgLevel(str, level)