32#include <QNetworkReply>
33#include <QNetworkRequest>
38#include "moc_qgsowsconnection.cpp"
40using namespace Qt::StringLiterals;
92 : mConnName( connName )
97 const QString url =
settingsUrl->value( {mService.toLower(), mConnName} );
98 mConnectionInfo = url;
99 mUri.setParam( u
"url"_s, url );
102 const QString username =
settingsUsername->value( {mService.toLower(), mConnName} );
103 const QString password =
settingsPassword->value( {mService.toLower(), mConnName} );
104 if ( !username.isEmpty() )
107 mUri.setUsername( username );
108 mUri.setPassword( password );
111 const QString authcfg =
settingsAuthCfg->value( {mService.toLower(), mConnName} );
112 if ( !authcfg.isEmpty() )
114 mUri.setAuthConfigId( authcfg );
116 mConnectionInfo.append(
",authcfg=" + authcfg );
119 mUri.setHttpHeaders( httpHeaders );
121 if ( !referer.isEmpty() )
123 mConnectionInfo.append(
",referer=" + referer );
126 if ( mService.compare(
"WMS"_L1, Qt::CaseInsensitive ) == 0
127 || mService.compare(
"WCS"_L1, Qt::CaseInsensitive ) == 0 )
131 else if ( mService.compare(
"WFS"_L1, Qt::CaseInsensitive ) == 0 )
146 return mConnectionInfo;
162 addCommonConnectionSettings(
uri, settingsKey );
166 uri.httpHeaders().setFromSettings( settings, settingsKey );
168 if ( settings.value( settingsKey + u
"/ignoreGetMapURI"_s,
false ).toBool() )
170 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
172 if ( settings.value( settingsKey + u
"/ignoreGetFeatureInfoURI"_s,
false ).toBool() )
174 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
176 if ( settings.value( settingsKey + u
"/smoothPixmapTransform"_s,
false ).toBool() )
178 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
180 if ( settings.value( settingsKey + u
"/ignoreReportedLayerExtents"_s,
false ).toBool() )
182 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
184 const QString dpiMode = settings.value( settingsKey + u
"/dpiMode"_s, u
"all"_s ).toString();
185 if ( !dpiMode.isEmpty() )
187 uri.setParam( u
"dpiMode"_s, dpiMode );
189 const QString tilePixelRatio = settings.value( settingsKey + u
"/tilePixelRatio"_s,
"0" ).toString();
190 if ( tilePixelRatio !=
"0"_L1 )
192 uri.setParam( u
"tilePixelRatio"_s, tilePixelRatio );
200 addCommonConnectionSettings(
uri,
service, connName );
206 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
210 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
214 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
218 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
222 uri.setParam( u
"dpiMode"_s, QString::number(
static_cast<int>(
settingsDpiMode->value( {service.toLower(), connName} ) ) ) );
226 uri.setParam( u
"tilePixelRatio"_s, QString::number(
static_cast<int>(
settingsTilePixelRatio->value( {service.toLower(), connName} ) ) ) );
230 uri.setParam( u
"featureCount"_s, QString::number(
settingsFeatureCount->value( {service.toLower(), connName} ) ) );
239 addCommonConnectionSettings(
uri, settingsKey );
243 const QString version = settings.
value( settingsKey +
"/version" ).toString();
244 if ( !version.isEmpty() )
246 uri.setParam( u
"version"_s, version );
249 const QString maxnumfeatures = settings.value( settingsKey + u
"/maxnumfeatures"_s ).toString();
250 if ( !maxnumfeatures.isEmpty() )
252 uri.setParam( u
"maxNumFeatures"_s, maxnumfeatures );
260 addCommonConnectionSettings(
uri,
service, connName );
263 if ( !version.isEmpty() )
265 uri.setParam( u
"version"_s, version );
269 if ( !maxnumFeatures.isEmpty() )
271 uri.setParam( u
"maxNumFeatures"_s, maxnumFeatures );
275 switch ( httpMethod )
282 uri.setParam( u
"httpMethod"_s, u
"post"_s );
310void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &key )
314 if ( settings.
value( key + u
"/ignoreAxisOrientation"_s,
false ).toBool() )
316 uri.
setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
318 if ( settings.
value( key + u
"/invertAxisOrientation"_s,
false ).toBool() )
320 uri.setParam( u
"InvertAxisOrientation"_s, u
"1"_s );
324void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &service,
const QString &connectionName )
329 uri.setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
333 uri.setParam( u
"InvertAxisOrientation"_s, u
"1"_s );
@ 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)