32#include <QNetworkReply>
33#include <QNetworkRequest>
38#include "moc_qgsowsconnection.cpp"
40using namespace Qt::StringLiterals;
47 =
new QgsSettingsEntryDouble( u
"tile-pixel-ratio"_s, sTreeXyzConnections, 0, u
"0 = unknown (not scaled), 1.0 = 256x256, 2.0 = 512x512"_s );
96 : mConnName( connName )
101 const QString url =
settingsUrl->value( { mService.toLower(), mConnName } );
102 mConnectionInfo = url;
103 mUri.setParam( u
"url"_s, url );
106 const QString username =
settingsUsername->value( { mService.toLower(), mConnName } );
107 const QString password =
settingsPassword->value( { mService.toLower(), mConnName } );
108 if ( !username.isEmpty() )
111 mUri.setUsername( username );
112 mUri.setPassword( password );
115 const QString authcfg =
settingsAuthCfg->value( { mService.toLower(), mConnName } );
116 if ( !authcfg.isEmpty() )
118 mUri.setAuthConfigId( authcfg );
120 mConnectionInfo.append(
",authcfg=" + authcfg );
123 mUri.setHttpHeaders( httpHeaders );
125 if ( !referer.isEmpty() )
127 mConnectionInfo.append(
",referer=" + referer );
130 if ( mService.compare(
"WMS"_L1, Qt::CaseInsensitive ) == 0 || mService.compare(
"WCS"_L1, Qt::CaseInsensitive ) == 0 )
134 else if ( mService.compare(
"WFS"_L1, Qt::CaseInsensitive ) == 0 )
149 return mConnectionInfo;
165 addCommonConnectionSettings(
uri, settingsKey );
169 uri.httpHeaders().setFromSettings( settings, settingsKey );
171 if ( settings.value( settingsKey + u
"/ignoreGetMapURI"_s,
false ).toBool() )
173 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
175 if ( settings.value( settingsKey + u
"/ignoreGetFeatureInfoURI"_s,
false ).toBool() )
177 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
179 if ( settings.value( settingsKey + u
"/smoothPixmapTransform"_s,
false ).toBool() )
181 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
183 if ( settings.value( settingsKey + u
"/ignoreReportedLayerExtents"_s,
false ).toBool() )
185 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
187 const QString dpiMode = settings.value( settingsKey + u
"/dpiMode"_s, u
"all"_s ).toString();
188 if ( !dpiMode.isEmpty() )
190 uri.setParam( u
"dpiMode"_s, dpiMode );
192 const QString tilePixelRatio = settings.value( settingsKey + u
"/tilePixelRatio"_s,
"0" ).toString();
193 if ( tilePixelRatio !=
"0"_L1 )
195 uri.setParam( u
"tilePixelRatio"_s, tilePixelRatio );
203 addCommonConnectionSettings(
uri,
service, connName );
209 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
213 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
217 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
221 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
225 uri.setParam( u
"dpiMode"_s, QString::number(
static_cast<int>(
settingsDpiMode->value( { service.toLower(), connName } ) ) ) );
229 uri.setParam( u
"tilePixelRatio"_s, QString::number(
static_cast<int>(
settingsTilePixelRatio->value( { service.toLower(), connName } ) ) ) );
233 uri.setParam( u
"featureCount"_s, QString::number(
settingsFeatureCount->value( { service.toLower(), connName } ) ) );
242 addCommonConnectionSettings(
uri, settingsKey );
246 const QString version = settings.
value( settingsKey +
"/version" ).toString();
247 if ( !version.isEmpty() )
249 uri.setParam( u
"version"_s, version );
252 const QString maxnumfeatures = settings.value( settingsKey + u
"/maxnumfeatures"_s ).toString();
253 if ( !maxnumfeatures.isEmpty() )
255 uri.setParam( u
"maxNumFeatures"_s, maxnumfeatures );
263 addCommonConnectionSettings(
uri,
service, connName );
266 if ( !version.isEmpty() )
268 uri.setParam( u
"version"_s, version );
272 if ( !maxnumFeatures.isEmpty() )
274 uri.setParam( u
"maxNumFeatures"_s, maxnumFeatures );
278 switch ( httpMethod )
285 uri.setParam( u
"httpMethod"_s, u
"post"_s );
313void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &key )
317 if ( settings.
value( key + u
"/ignoreAxisOrientation"_s,
false ).toBool() )
319 uri.
setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
321 if ( settings.
value( key + u
"/invertAxisOrientation"_s,
false ).toBool() )
323 uri.setParam( u
"InvertAxisOrientation"_s, u
"1"_s );
327void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &service,
const QString &connectionName )
331 uri.setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
335 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)