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 );
97 : mConnName( connName )
102 const QString url =
settingsUrl->value( { mService.toLower(), mConnName } );
103 mConnectionInfo = url;
104 mUri.setParam( u
"url"_s, url );
107 const QString username =
settingsUsername->value( { mService.toLower(), mConnName } );
108 const QString password =
settingsPassword->value( { mService.toLower(), mConnName } );
109 if ( !username.isEmpty() )
112 mUri.setUsername( username );
113 mUri.setPassword( password );
116 const QString authcfg =
settingsAuthCfg->value( { mService.toLower(), mConnName } );
117 if ( !authcfg.isEmpty() )
119 mUri.setAuthConfigId( authcfg );
121 mConnectionInfo.append(
",authcfg=" + authcfg );
124 mUri.setHttpHeaders( httpHeaders );
126 if ( !referer.isEmpty() )
128 mConnectionInfo.append(
",referer=" + referer );
131 if ( mService.compare(
"WMS"_L1, Qt::CaseInsensitive ) == 0 || mService.compare(
"WCS"_L1, Qt::CaseInsensitive ) == 0 )
135 else if ( mService.compare(
"WFS"_L1, Qt::CaseInsensitive ) == 0 )
150 return mConnectionInfo;
166 addCommonConnectionSettings(
uri, settingsKey );
170 uri.httpHeaders().setFromSettings( settings, settingsKey );
172 if ( settings.value( settingsKey + u
"/ignoreGetMapURI"_s,
false ).toBool() )
174 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
176 if ( settings.value( settingsKey + u
"/ignoreGetFeatureInfoURI"_s,
false ).toBool() )
178 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
180 if ( settings.value( settingsKey + u
"/smoothPixmapTransform"_s,
false ).toBool() )
182 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
184 if ( settings.value( settingsKey + u
"/ignoreReportedLayerExtents"_s,
false ).toBool() )
186 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
188 const QString dpiMode = settings.value( settingsKey + u
"/dpiMode"_s, u
"all"_s ).toString();
189 if ( !dpiMode.isEmpty() )
191 uri.setParam( u
"dpiMode"_s, dpiMode );
193 const QString tilePixelRatio = settings.value( settingsKey + u
"/tilePixelRatio"_s,
"0" ).toString();
194 if ( tilePixelRatio !=
"0"_L1 )
196 uri.setParam( u
"tilePixelRatio"_s, tilePixelRatio );
204 addCommonConnectionSettings(
uri,
service, connName );
210 uri.setParam( u
"IgnoreGetMapUrl"_s, u
"1"_s );
214 uri.setParam( u
"IgnoreGetFeatureInfoUrl"_s, u
"1"_s );
218 uri.setParam( u
"SmoothPixmapTransform"_s, u
"1"_s );
222 uri.setParam( u
"IgnoreReportedLayerExtents"_s, u
"1"_s );
226 uri.setParam( u
"dpiMode"_s, QString::number(
static_cast<int>(
settingsDpiMode->value( { service.toLower(), connName } ) ) ) );
230 uri.setParam( u
"tilePixelRatio"_s, QString::number(
static_cast<int>(
settingsTilePixelRatio->value( { service.toLower(), connName } ) ) ) );
234 uri.setParam( u
"featureCount"_s, QString::number(
settingsFeatureCount->value( { service.toLower(), connName } ) ) );
243 addCommonConnectionSettings(
uri, settingsKey );
247 const QString version = settings.
value( settingsKey +
"/version" ).toString();
248 if ( !version.isEmpty() )
250 uri.setParam( u
"version"_s, version );
253 const QString maxnumfeatures = settings.value( settingsKey + u
"/maxnumfeatures"_s ).toString();
254 if ( !maxnumfeatures.isEmpty() )
256 uri.setParam( u
"maxNumFeatures"_s, maxnumfeatures );
264 addCommonConnectionSettings(
uri,
service, connName );
267 if ( !version.isEmpty() )
269 uri.setParam( u
"version"_s, version );
273 if ( !maxnumFeatures.isEmpty() )
275 uri.setParam( u
"maxNumFeatures"_s, maxnumFeatures );
279 switch ( httpMethod )
286 uri.setParam( u
"httpMethod"_s, u
"post"_s );
314void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &key )
318 if ( settings.
value( key + u
"/ignoreAxisOrientation"_s,
false ).toBool() )
320 uri.
setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
322 if ( settings.
value( key + u
"/invertAxisOrientation"_s,
false ).toBool() )
324 uri.setParam( u
"InvertAxisOrientation"_s, u
"1"_s );
326 if ( settings.
value( key + u
"/disableDecompressedSafetyCheckThreshold"_s,
false ).toBool() )
328 uri.setParam( u
"DisableDecompressedSafetyCheckThreshold"_s, u
"1"_s );
332void QgsOwsConnection::addCommonConnectionSettings(
QgsDataSourceUri &uri,
const QString &service,
const QString &connectionName )
336 uri.setParam( u
"IgnoreAxisOrientation"_s, u
"1"_s );
340 uri.setParam( u
"InvertAxisOrientation"_s, u
"1"_s );
344 uri.setParam( u
"DisableDecompressedSafetyCheckThreshold"_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 const QgsSettingsEntryBool * settingsDisableDecompressedSafetyCheckThreshold
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)