37QString QgsVectorTileProviderConnection::encodedUri(
const QgsVectorTileProviderConnection::Data &conn )
41 const QFileInfo info( conn.url );
42 QString suffix = info.suffix().toLower();
43 if ( suffix.startsWith( QLatin1String(
"mbtiles" ) ) )
45 uri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"mbtiles" ) );
49 uri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"xyz" ) );
52 uri.
setParam( QStringLiteral(
"url" ), conn.url );
53 if ( conn.zMin != -1 )
54 uri.
setParam( QStringLiteral(
"zmin" ), QString::number( conn.zMin ) );
55 if ( conn.zMax != -1 )
56 uri.
setParam( QStringLiteral(
"zmax" ), QString::number( conn.zMax ) );
57 if ( !conn.authCfg.isEmpty() )
59 if ( !conn.username.isEmpty() )
61 if ( !conn.password.isEmpty() )
63 if ( !conn.styleUrl.isEmpty() )
64 uri.
setParam( QStringLiteral(
"styleUrl" ), conn.styleUrl );
68 switch ( conn.serviceType )
73 case ArcgisVectorTileService:
74 uri.
setParam( QStringLiteral(
"serviceType" ), QStringLiteral(
"arcgis" ) );
81QgsVectorTileProviderConnection::Data QgsVectorTileProviderConnection::decodedUri(
const QString &uri )
86 QgsVectorTileProviderConnection::Data conn;
87 conn.url = dsUri.
param( QStringLiteral(
"url" ) );
88 conn.zMin = dsUri.
hasParam( QStringLiteral(
"zmin" ) ) ? dsUri.
param( QStringLiteral(
"zmin" ) ).toInt() : -1;
89 conn.zMax = dsUri.
hasParam( QStringLiteral(
"zmax" ) ) ? dsUri.
param( QStringLiteral(
"zmax" ) ).toInt() : -1;
93 conn.styleUrl = dsUri.
param( QStringLiteral(
"styleUrl" ) );
97 if ( dsUri.
hasParam( QStringLiteral(
"serviceType" ) ) )
99 if ( dsUri.
param( QStringLiteral(
"serviceType" ) ) == QLatin1String(
"arcgis" ) )
100 conn.serviceType = ArcgisVectorTileService;
105QString QgsVectorTileProviderConnection::encodedLayerUri(
const QgsVectorTileProviderConnection::Data &conn )
110 const QFileInfo info( conn.url );
111 QString suffix = info.suffix().toLower();
112 if ( suffix.startsWith( QLatin1String(
"mbtiles" ) ) )
114 uri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"mbtiles" ) );
118 uri.
setParam( QStringLiteral(
"type" ), QStringLiteral(
"xyz" ) );
121 uri.
setParam( QStringLiteral(
"url" ), conn.url );
122 if ( conn.zMin != -1 )
123 uri.
setParam( QStringLiteral(
"zmin" ), QString::number( conn.zMin ) );
124 if ( conn.zMax != -1 )
125 uri.
setParam( QStringLiteral(
"zmax" ), QString::number( conn.zMax ) );
126 if ( !conn.authCfg.isEmpty() )
128 if ( !conn.username.isEmpty() )
130 if ( !conn.password.isEmpty() )
132 if ( !conn.styleUrl.isEmpty() )
133 uri.
setParam( QStringLiteral(
"styleUrl" ), conn.styleUrl );
137 switch ( conn.serviceType )
142 case ArcgisVectorTileService:
143 uri.
setParam( QStringLiteral(
"serviceType" ), QStringLiteral(
"arcgis" ) );
150QStringList QgsVectorTileProviderConnection::connectionList()
152 return QgsVectorTileProviderConnection::sTreeConnectionVectorTile->items();
155QgsVectorTileProviderConnection::Data QgsVectorTileProviderConnection::connection(
const QString &name )
157 if ( !settingsUrl->exists( name ) && !settingsStyleUrl->exists( name ) )
158 return QgsVectorTileProviderConnection::Data();
160 QgsVectorTileProviderConnection::Data conn;
161 conn.url = settingsUrl->value( name );
162 conn.zMin = settingsZmin->value( name );
163 conn.zMax = settingsZmax->value( name );
164 conn.authCfg = settingsAuthcfg->value( name );
165 conn.username = settingsUsername->value( name );
166 conn.password = settingsPassword->value( name );
167 conn.styleUrl = settingsStyleUrl->value( name );
169 if ( settingsHeaders->exists( name ) )
170 conn.httpHeaders =
QgsHttpHeaders( settingsHeaders->value( name ) );
172 if ( settingsServiceType->exists( name ) && settingsServiceType->value( name ) == QLatin1String(
"arcgis" ) )
173 conn.serviceType = ArcgisVectorTileService;
178void QgsVectorTileProviderConnection::deleteConnection(
const QString &name )
180 sTreeConnectionVectorTile->deleteItem( name );
183void QgsVectorTileProviderConnection::addConnection(
const QString &name, QgsVectorTileProviderConnection::Data conn )
185 settingsUrl->setValue( conn.url, name );
186 settingsZmin->setValue( conn.zMin, name );
187 settingsZmax->setValue( conn.zMax, name );
188 settingsAuthcfg->setValue( conn.authCfg, name );
189 settingsUsername->setValue( conn.username, name );
190 settingsPassword->setValue( conn.password, name );
191 settingsStyleUrl->setValue( conn.styleUrl, name );
193 settingsHeaders->setValue( conn.httpHeaders.headers(), name );
195 switch ( conn.serviceType )
200 case ArcgisVectorTileService:
201 settingsServiceType->setValue( QStringLiteral(
"arcgis" ), name );
206QString QgsVectorTileProviderConnection::selectedConnection()
208 return sTreeConnectionVectorTile->selectedItem();
211void QgsVectorTileProviderConnection::setSelectedConnection(
const QString &name )
213 sTreeConnectionVectorTile->setSelectedItem( name );
217QgsVectorTileProviderConnection::QgsVectorTileProviderConnection(
const QString &name )
220 setUri( encodedUri( connection( name ) ) );
223QgsVectorTileProviderConnection::QgsVectorTileProviderConnection(
const QString &uri,
const QVariantMap &configuration )
228void QgsVectorTileProviderConnection::store(
const QString &name )
const
230 addConnection( name, decodedUri( uri() ) );
233void QgsVectorTileProviderConnection::remove(
const QString &name )
const
235 deleteConnection( name );
An interface for data provider connections.
Stores the component parts of a data source URI (e.g.
QByteArray encodedUri() const
Returns the complete encoded URI as a byte array.
bool hasParam(const QString &key) const
Returns true if a parameter with the specified key exists.
void setEncodedUri(const QByteArray &uri)
Sets the complete encoded uri.
void setAuthConfigId(const QString &authcfg)
Sets the authentication configuration ID for the URI.
QgsHttpHeaders httpHeaders() const
Returns http headers.
void setUsername(const QString &username)
Sets the username for the URI.
QString param(const QString &key) const
Returns a generic parameter value corresponding to the specified key.
QString username() const
Returns the username stored in the URI.
void setParam(const QString &key, const QString &value)
Sets a generic parameter value on the URI.
QString password() const
Returns the password stored in the URI.
QString authConfigId() const
Returns any associated authentication configuration ID stored in the URI.
void setHttpHeaders(const QgsHttpHeaders &headers)
Sets headers to headers.
void setPassword(const QString &password)
Sets the password for the URI.
An integer settings entry.
A string list settings entry.