19 #ifndef QGSPROVIDERMETADATA_H
20 #define QGSPROVIDERMETADATA_H
24 #include <QVariantMap>
32 #include "qgis_core.h"
66 CanWriteFaceDatasets = 1 << 0,
67 CanWriteVertexDatasets = 1 << 1,
68 CanWriteEdgeDatasets = 1 << 2,
69 CanWriteMeshData = 1 << 3,
72 Q_ENUM( MeshDriverCapability )
73 Q_DECLARE_FLAGS( MeshDriverCapabilities, MeshDriverCapability )
74 Q_FLAG( MeshDriverCapabilities )
88 const QString &description,
89 const MeshDriverCapabilities &capabilities,
90 const QString &writeDatasetOnFileSuffix );
95 MeshDriverCapabilities capabilities() const;
100 QString name() const;
105 QString description() const;
110 QString writeDatasetOnFileSuffix() const;
114 QString mDescription;
115 MeshDriverCapabilities mCapabilities;
116 QString mWriteDatasetOnFileSuffix;
151 PriorityForUri = 1 << 0,
152 LayerTypesForUri = 1 << 1,
154 Q_DECLARE_FLAGS( ProviderMetadataCapabilities, ProviderMetadataCapability )
163 FileBasedUris = 1 << 0,
165 Q_DECLARE_FLAGS( ProviderCapabilities, ProviderCapability )
179 QgsProviderMetadata( const QString &key, const QString &description, const QString &library = QString() );
204 QString description() const;
242 virtual
void initProvider();
248 virtual
void cleanupProvider();
270 virtual QString filters( FilterType type );
277 virtual QList<QgsMeshDriverMetadata> meshDriversMetadata();
294 virtual int priorityForUri(
const QString &uri )
const;
306 virtual QList< QgsMapLayerType > validLayerTypesForUri(
const QString &uri )
const;
324 virtual bool uriIsBlocklisted(
const QString &uri )
const;
337 QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() )
SIP_FACTORY;
345 static
void setBoolParameter( QVariantMap &uri, const QString ¶meter, const QVariant &value );
353 static
bool boolParameter( const QVariantMap &uri, const QString ¶meter,
bool defaultValue = false );
368 QMap<int, int> &oldToNewAttrIdxMap,
369 QString &errorMessage,
370 const QMap<QString, QVariant> *options );
379 const QString &format,
384 double *geoTransform,
386 const QStringList &createOptions = QStringList() )
SIP_FACTORY;
392 virtual
bool createMeshData(
395 const QString &driverName,
402 virtual QList<QPair<QString, QString> > pyramidResamplingMethods();
421 virtual QVariantMap decodeUri( const QString &uri ) const;
431 virtual QString encodeUri( const QVariantMap &parts ) const;
446 virtual
int listStyles( const QString &uri, QStringList &ids, QStringList &names,
447 QStringList &descriptions, QString &errCause );
453 virtual QString getStyleById( const QString &uri, QString styleId, QString &errCause );
459 virtual
bool deleteStyleById( const QString &uri, QString styleId, QString &errCause );
465 virtual
bool saveStyle( const QString &uri, const QString &qmlStyle, const QString &sldStyle,
466 const QString &styleName, const QString &styleDescription,
467 const QString &uiFileContent,
bool useAsDefault, QString &errCause );
473 virtual QString loadStyle( const QString &uri, QString &errCause );
479 virtual
bool createDb( const QString &dbPath, QString &errCause );
529 template <
typename T> QMap<QString, T *>connections(
bool cached =
true );
571 SIP_PYOBJECT __repr__();
573 QString str = QStringLiteral(
"<QgsProviderMetadata: %1>" ).arg( sipCpp->key() );
574 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
615 template <
class T_prov
ider_conn,
class T_conn> QMap<QString, QgsAbstractProviderConnection *> connectionsProtected(
bool cached =
true )
617 if ( ! cached || mProviderConnections.isEmpty() )
619 qDeleteAll( mProviderConnections );
620 mProviderConnections.clear();
621 const auto connNames { T_conn::connectionList() };
622 for (
const auto &cname : connNames )
624 mProviderConnections.insert( cname,
new T_provider_conn( cname ) );
627 return mProviderConnections;
630 template <
class T_prov
ider_conn>
void deleteConnectionProtected(
const QString &name )
632 T_provider_conn conn( name );
634 mProviderConnections.clear();
635 emit connectionDeleted( name );
639 QMap<QString, QgsAbstractProviderConnection *> mProviderConnections;
651 QString mDescription;
657 CreateDataProviderFunction mCreateFunction =
nullptr;
DataType
Raster data types.
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connection...
The QgsAbstractProviderConnection provides an interface for data provider connections.
This class represents a coordinate reference system (CRS).
This is the interface for those who want to add custom data items to the browser tree.
Base class for all items in the model.
Abstract base class for spatial data provider implementations.
Container of fields for a vector layer.
Base class for providing data for QgsMeshLayer.
Custom exception class for provider connection related exceptions.
Base class for raster data providers.
This class allows including a set of layers in a database-side transaction, provided the layer data p...
Type
The WKB type describes the number of dimensions a geometry has.
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
const QgsCoordinateReferenceSystem & crs
Setting options for creating vector data providers.
Mesh - vertices, edges and faces.