Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsvectortileconnection.h 3 : : --------------------- 4 : : begin : March 2020 5 : : copyright : (C) 2020 by Martin Dobias 6 : : email : wonder dot sk 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 : : 16 : : #ifndef QGSVECTORTILECONNECTION_H 17 : : #define QGSVECTORTILECONNECTION_H 18 : : 19 : : #include "qgis_core.h" 20 : : 21 : : ///@cond PRIVATE 22 : : #define SIP_NO_FILE 23 : : 24 : : #include <QStringList> 25 : : 26 : : #include "qgsabstractproviderconnection.h" 27 : : 28 : 0 : class CORE_EXPORT QgsVectorTileProviderConnection : public QgsAbstractProviderConnection 29 : : { 30 : : 31 : : public: 32 : : QgsVectorTileProviderConnection( const QString &name ); 33 : : QgsVectorTileProviderConnection( const QString &uri, const QVariantMap &configuration ); 34 : : 35 : : virtual void store( const QString &name ) const override; 36 : : virtual void remove( const QString &name ) const override; 37 : : 38 : : /** 39 : : * Vector tile service type. 40 : : * 41 : : * \since QGIS 3.16 42 : : */ 43 : : enum ServiceType 44 : : { 45 : : Generic, //!< Generic (XYZ) connection 46 : : ArcgisVectorTileService, //!< ArcGIS VectorTileServer connection 47 : : }; 48 : : 49 : : //! Represents decoded data of a connection 50 : 0 : struct Data 51 : : { 52 : : QString url; 53 : 0 : int zMin = -1; 54 : 0 : int zMax = -1; 55 : : 56 : 0 : ServiceType serviceType = Generic; 57 : : 58 : : //! Authentication configuration id 59 : : QString authCfg; 60 : : //! HTTP Basic username 61 : : QString username; 62 : : //! HTTP Basic password 63 : : QString password; 64 : : //! Referer 65 : : QString referer; 66 : : 67 : : //! Optional style URL (will override any default styles) 68 : : QString styleUrl; 69 : : 70 : : }; 71 : : 72 : : //! Returns connection data encoded as a string 73 : : static QString encodedUri( const Data &conn ); 74 : : //! Decodes connection string to a data structure 75 : : static Data decodedUri( const QString &uri ); 76 : : 77 : : //! Returns connection data encoded as a string containing URI for QgsVectorTileLayer 78 : : static QString encodedLayerUri( const Data &conn ); 79 : : 80 : : //! Returns list of existing connections, unless the hidden ones 81 : : static QStringList connectionList(); 82 : : //! Returns connection details 83 : : static Data connection( const QString &name ); 84 : : //! Removes a connection from the list 85 : : static void deleteConnection( const QString &name ); 86 : : //! Adds a new connection to the list 87 : : static void addConnection( const QString &name, Data conn ); 88 : : //! Returns last used connection 89 : : static QString selectedConnection(); 90 : : //! Saves name of the last used connection 91 : : static void setSelectedConnection( const QString &connName ); 92 : : }; 93 : : 94 : : ///@endcond 95 : : 96 : : #endif // QGSVECTORTILECONNECTION_H