19#ifndef QGSPROVIDERMETADATA_H
20#define QGSPROVIDERMETADATA_H
67 CanWriteFaceDatasets = 1 << 0,
68 CanWriteVertexDatasets = 1 << 1,
69 CanWriteEdgeDatasets = 1 << 2,
70 CanWriteMeshData = 1 << 3,
73 Q_ENUM( MeshDriverCapability )
91 const QString &description,
108 const QString &description,
110 const QString &writeDatasetOnFileSuffix,
111 const QString &writeMeshFrameOnFileSuffix,
112 int maxVerticesPerface );
122 QString name() const;
127 QString description() const;
132 QString writeDatasetOnFileSuffix() const;
139 QString writeMeshFrameOnFileSuffix() const;
146 int maximumVerticesCountPerFace() const;
150 QString mDescription;
152 QString mWriteDatasetOnFileSuffix;
153 QString mWriteMeshFrameOnFileSuffix;
154 int mMaxVerticesPerFace = -1;
189 PriorityForUri = 1 << 0,
190 LayerTypesForUri = 1 << 1,
191 QuerySublayers = 1 << 2,
192 CreateDatabase = 1 << 3,
203 FileBasedUris = 1 << 0,
204 SaveLayerMetadata = 1 << 1,
205 ParallelCreateProvider = 1 << 2,
220 QgsProviderMetadata( const QString &key, const QString &description, const QString &library = QString() );
244 QString description() const;
251 virtual QIcon icon() const;
273 virtual QList< Qgis::LayerType > supportedLayerTypes()
const;
275 SIP_PYOBJECT supportedLayerTypes() const
SIP_TYPEHINT( List[
Qgis.LayerType] );
279 const QList<
Qgis::LayerType > cppRes = sipCpp->supportedLayerTypes();
281 PyObject *l = PyList_New( cppRes.size() );
287 for (
int i = 0; i < cppRes.size(); ++i )
289 PyObject *eobj = sipConvertFromEnum(
static_cast<int>( cppRes.at( i ) ),
290 sipType_Qgis_LayerType );
297 PyList_SetItem( l, i, eobj );
327 SIP_SKIP Q_DECL_DEPRECATED CreateDataProviderFunction createFunction() const;
333 virtual
void initProvider();
339 virtual
void cleanupProvider();
348 virtual QString filters(
Qgis::FileFilterType type );
372 virtual
int priorityForUri( const QString &uri ) const;
384 virtual QList<
Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const;
402 virtual
bool uriIsBlocklisted( const QString &uri ) const;
425 virtual QStringList sidecarFilesForUri( const QString &uri ) const;
451 virtual QString suggestGroupNameForUri( const QString &uri ) const;
472 static
void setBoolParameter( QVariantMap &uri, const QString ¶meter, const QVariant &value );
480 static
bool boolParameter( const QVariantMap &uri, const QString ¶meter,
bool defaultValue = false );
495 QMap<int, int> &oldToNewAttrIdxMap,
496 QString &errorMessage,
497 const QMap<QString, QVariant> *options );
515 virtual bool createDatabase(
const QString &uri, QString &errorMessage
SIP_OUT );
523 const QString &format,
528 double *geoTransform,
530 const QStringList &createOptions = QStringList() )
SIP_FACTORY;
536 virtual
bool createMeshData(
538 const QString &fileName,
539 const QString &driverName,
546 virtual
bool createMeshData(
555 virtual QList<QPair<QString, QString> > pyramidResamplingMethods();
574 virtual QVariantMap decodeUri( const QString &uri ) const;
584 virtual QString encodeUri( const QVariantMap &parts ) const;
597 virtual QString absoluteToRelativeUri( const QString &uri, const
QgsReadWriteContext &context ) const;
610 virtual QString relativeToAbsoluteUri( const QString &uri, const
QgsReadWriteContext &context ) const;
625 virtual
int listStyles( const QString &uri, QStringList &ids, QStringList &names,
626 QStringList &descriptions, QString &errCause );
639 virtual
bool styleExists( const QString &uri, const QString &styleId, QString &errorCause
SIP_OUT );
648 virtual QString getStyleById( const QString &uri, const QString &styleId, QString &errCause );
654 virtual
bool deleteStyleById( const QString &uri, const QString &styleId, QString &errCause );
667 virtual
bool saveStyle( const QString &uri, const QString &qmlStyle, const QString &sldStyle,
668 const QString &styleName, const QString &styleDescription,
669 const QString &uiFileContent,
bool useAsDefault, QString &errCause );
675 virtual QString loadStyle( const QString &uri, QString &errCause );
685 virtual QString loadStoredStyle( const QString &uri, QString &styleName, QString &errCause );
707 virtual
bool createDb( const QString &dbPath, QString &errCause );
757 template <
typename T> QMap<QString, T *>connections(
bool cached =
true );
799 SIP_PYOBJECT __repr__();
801 QString
str = QStringLiteral(
"<QgsProviderMetadata: %1>" ).arg( sipCpp->key() );
802 sipRes = PyUnicode_FromString(
str.toUtf8().constData() );
843 template <
class T_prov
ider_conn,
class T_conn> QMap<QString, QgsAbstractProviderConnection *> connectionsProtected(
bool cached =
true )
845 if ( ! cached || mProviderConnections.isEmpty() )
847 qDeleteAll( mProviderConnections );
848 mProviderConnections.clear();
849 const auto connNames { T_conn::connectionList() };
850 for (
const auto &cname : connNames )
852 mProviderConnections.insert( cname,
new T_provider_conn( cname ) );
855 return mProviderConnections;
858 template <
class T_prov
ider_conn>
void deleteConnectionProtected(
const QString &name )
860 T_provider_conn conn( name );
862 mProviderConnections.clear();
863 emit connectionDeleted( name );
867 QMap<QString, QgsAbstractProviderConnection *> mProviderConnections;
879 QString mDescription;
885 CreateDataProviderFunction mCreateFunction =
nullptr;
The Qgis class provides global constants for use throughout the application.
VectorExportResult
Vector layer export result codes.
DataType
Raster data types.
WkbType
The WKB type describes the number of dimensions a geometry has.
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.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Container of fields for a vector layer.
Base class for providing data for QgsMeshLayer.
Custom exception class which is raised when an operation is not supported.
Custom exception class for provider connection related exceptions.
Contains details about a sub layer available from a dataset.
Base class for raster data providers.
The class is used as a container of context for various read/write operations on other objects.
This class allows including a set of layers in a database-side transaction, provided the layer data p...
#define SIP_TYPEHINT(type)
#define SIP_ENUM_BASETYPE(type)
#define SIP_THROW(name,...)
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)
const QgsCoordinateReferenceSystem & crs
Mesh - vertices, edges and faces.