QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
qgstiledsceneconnection.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgstiledsceneconnection.cpp
3 ---------------------
4 begin : June 2023
5 copyright : (C) 2023 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
17
18#include "qgsdatasourceuri.h"
19#include "qgshttpheaders.h"
21
22#include <QFileInfo>
23
25
26
27const QgsSettingsEntryString *QgsTiledSceneProviderConnection::settingsProvider = new QgsSettingsEntryString( QStringLiteral( "provider" ), sTreeConnectionTiledScene );
28const QgsSettingsEntryString *QgsTiledSceneProviderConnection::settingsUrl = new QgsSettingsEntryString( QStringLiteral( "url" ), sTreeConnectionTiledScene );
29const QgsSettingsEntryString *QgsTiledSceneProviderConnection::settingsAuthcfg = new QgsSettingsEntryString( QStringLiteral( "authcfg" ), sTreeConnectionTiledScene );
30const QgsSettingsEntryString *QgsTiledSceneProviderConnection::settingsUsername = new QgsSettingsEntryString( QStringLiteral( "username" ), sTreeConnectionTiledScene );
31const QgsSettingsEntryString *QgsTiledSceneProviderConnection::settingsPassword = new QgsSettingsEntryString( QStringLiteral( "password" ), sTreeConnectionTiledScene );
32const QgsSettingsEntryVariantMap *QgsTiledSceneProviderConnection::settingsHeaders = new QgsSettingsEntryVariantMap( QStringLiteral( "http-header" ), sTreeConnectionTiledScene );
33
35
37{
39
40 if ( !data.url.isEmpty() )
41 uri.setParam( QStringLiteral( "url" ), data.url );
42 if ( !data.authCfg.isEmpty() )
43 uri.setAuthConfigId( data.authCfg );
44 if ( !data.username.isEmpty() )
45 uri.setUsername( data.username );
46 if ( !data.password.isEmpty() )
47 uri.setPassword( data.password );
48
49 uri.setHttpHeaders( data.httpHeaders );
50
51 return uri.encodedUri();
52}
53
55{
56 QgsDataSourceUri dsUri;
57 dsUri.setEncodedUri( uri );
58
60 conn.url = dsUri.param( QStringLiteral( "url" ) );
61 conn.authCfg = dsUri.authConfigId();
62 conn.username = dsUri.username();
63 conn.password = dsUri.password();
64 conn.httpHeaders = dsUri.httpHeaders();
65
66 return conn;
67}
68
70{
72
73 uri.setParam( QStringLiteral( "url" ), data.url );
74 if ( !data.authCfg.isEmpty() )
75 uri.setAuthConfigId( data.authCfg );
76 if ( !data.username.isEmpty() )
77 uri.setUsername( data.username );
78 if ( !data.password.isEmpty() )
79 uri.setPassword( data.password );
80
81 uri.setHttpHeaders( data.httpHeaders );
82
83 return uri.encodedUri();
84}
85
87{
88 return QgsTiledSceneProviderConnection::sTreeConnectionTiledScene->items();
89}
90
92{
93 if ( !settingsUrl->exists( name ) )
95
97 conn.provider = settingsProvider->value( name );
98 conn.url = settingsUrl->value( name );
99 conn.authCfg = settingsAuthcfg->value( name );
100 conn.username = settingsUsername->value( name );
101 conn.password = settingsPassword->value( name );
102
103 if ( settingsHeaders->exists( name ) )
104 conn.httpHeaders = QgsHttpHeaders( settingsHeaders->value( name ) );
105
106 return conn;
107}
108
109void QgsTiledSceneProviderConnection::addConnection( const QString &name, const Data &conn )
110{
111 settingsProvider->setValue( conn.provider, name );
112 settingsUrl->setValue( conn.url, name );
113 settingsAuthcfg->setValue( conn.authCfg, name );
114 settingsUsername->setValue( conn.username, name );
115 settingsPassword->setValue( conn.password, name );
116 settingsHeaders->setValue( conn.httpHeaders.headers(), name );
117}
118
120{
121 return sTreeConnectionTiledScene->selectedItem();
122}
123
125{
126 sTreeConnectionTiledScene->setSelectedItem( name );
127}
128
131{
132 const QgsTiledSceneProviderConnection::Data connectionData = connection( name );
133 mProvider = connectionData.provider;
134 setUri( encodedUri( connectionData ) );
135}
136
137QgsTiledSceneProviderConnection::QgsTiledSceneProviderConnection( const QString &uri, const QString &provider, const QVariantMap &configuration )
139 , mProvider( provider )
140{
141}
142
143void QgsTiledSceneProviderConnection::store( const QString &name ) const
144{
146 connectionData.provider = mProvider;
147 addConnection( name, connectionData );
148}
149
150void QgsTiledSceneProviderConnection::remove( const QString &name ) const
151{
152 sTreeConnectionTiledScene->deleteItem( name );
153}
QVariantMap configuration() const
Returns the connection configuration parameters.
void setUri(const QString &uri)
Sets the connection data source URI to uri.
QgsAbstractProviderConnection(const QString &name)
Creates a new connection with name by reading its configuration from the settings.
QString uri() const
Returns the connection data source URI string representation.
Stores the component parts of a data source URI (e.g.
void setEncodedUri(const QByteArray &uri)
Sets the complete encoded uri.
QgsHttpHeaders httpHeaders() const
Returns http headers.
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.
QString password() const
Returns the password stored in the URI.
QString authConfigId() const
Returns any associated authentication configuration ID stored in the URI.
Implements simple HTTP header management.
QVariantMap headers() const
Returns the headers as a variant map.
A string settings entry.
A string list settings entry.
void remove(const QString &name) const override
Deletes the connection from the settings.
static QString selectedConnection()
Returns the name of the last used connection.
static Data decodedUri(const QString &uri)
Returns a connection uri decoded to a data structure.
void store(const QString &name) const override
Stores the connection in the settings.
static Data connection(const QString &name)
Returns connection details for the stored connection with the specified name.
PRIVATE QgsTiledSceneProviderConnection(const QString &name)
Constructor for QgsTiledSceneProviderConnection, using the stored settings with the specified connect...
static void addConnection(const QString &name, const Data &connection)
Stores a new connection, under the specified connection name.
static void setSelectedConnection(const QString &name)
Stores the name of the last used connection.
static QStringList connectionList()
Returns a list of the stored connection names.
static QString encodedUri(const Data &data)
Returns connection data encoded as a string.
static QString encodedLayerUri(const Data &data)
Returns connection data encoded as a string containing a URI for a QgsTiledSceneLayer.
Represents decoded data of a tiled scene connection.
QString authCfg
Authentication configuration ID.