QGIS API Documentation 3.41.0-Master (25ec5511245)
|
Holds data provider key, description, and associated shared library file or function pointer information. More...
#include <qgsprovidermetadata.h>
Public Types | |
typedef std::function< QgsDataProvider *(const QString &, const QgsDataProvider::ProviderOptions &, Qgis::DataProviderReadFlags &) > | CreateDataProviderFunction |
Typedef for data provider creation function. | |
typedef QFlags< ProviderCapability > | ProviderCapabilities |
enum | ProviderCapability { FileBasedUris = 1 << 0 , SaveLayerMetadata = 1 << 1 , ParallelCreateProvider = 1 << 2 } |
Provider capabilities. More... | |
typedef QFlags< ProviderMetadataCapability > | ProviderMetadataCapabilities |
enum | ProviderMetadataCapability { PriorityForUri = 1 << 0 , LayerTypesForUri = 1 << 1 , QuerySublayers = 1 << 2 , CreateDatabase = 1 << 3 } |
Indicates capabilities of the provider metadata implementation. More... | |
Signals | |
void | connectionChanged (const QString &name) |
Emitted when the connection with the specified name is changed, e.g. | |
void | connectionCreated (const QString &name) |
Emitted when a connection with the specified name is created. | |
void | connectionDeleted (const QString &name) |
Emitted when the connection with the specified name was deleted. | |
Public Member Functions | |
Q_DECL_DEPRECATED | QgsProviderMetadata (const QString &key, const QString &description, const QgsProviderMetadata::CreateDataProviderFunction &createFunc) |
Metadata for provider with direct provider creation function pointer, where no library is involved. | |
QgsProviderMetadata (const QString &key, const QString &description, const QString &library=QString()) | |
Constructor for provider metadata. | |
virtual | ~QgsProviderMetadata () |
virtual QString | absoluteToRelativeUri (const QString &uri, const QgsReadWriteContext &context) const |
Converts absolute path(s) to relative path(s) in the given provider-specific URI. | |
virtual QgsProviderMetadata::ProviderMetadataCapabilities | capabilities () const |
Returns the provider metadata capabilities. | |
virtual void | cleanupProvider () |
Cleanup the provider. | |
virtual QMap< QString, QgsAbstractProviderConnection * > | connections (bool cached=true) |
Returns a dictionary of stored provider connections, the dictionary key is the connection identifier. | |
template<typename T > | |
QMap< QString, T * > | connections (bool cached=true) |
Returns a dictionary of provider connections of the specified type T, the dictionary key is the connection identifier. | |
virtual QgsAbstractProviderConnection * | createConnection (const QString &name) |
Creates a new connection by loading the connection with the given name from the settings. | |
virtual QgsAbstractProviderConnection * | createConnection (const QString &uri, const QVariantMap &configuration) |
Creates a new connection from uri and configuration, the newly created connection is not automatically stored in the settings, call saveConnection() to save it. | |
virtual bool | createDatabase (const QString &uri, QString &errorMessage) |
Creates a new empty database at the specified uri. | |
virtual bool | createDb (const QString &dbPath, QString &errCause) |
Creates database by the provider on the path. | |
virtual Qgis::VectorExportResult | createEmptyLayer (const QString &uri, const QgsFields &fields, Qgis::WkbType wkbType, const QgsCoordinateReferenceSystem &srs, bool overwrite, QMap< int, int > &oldToNewAttrIdxMap, QString &errorMessage, const QMap< QString, QVariant > *options) |
Creates new empty vector layer. | |
Q_DECL_DEPRECATED CreateDataProviderFunction | createFunction () const |
Returns a pointer to the direct provider creation function, if supported by the provider. | |
virtual bool | createMeshData (const QgsMesh &mesh, const QString &fileName, const QString &driverName, const QgsCoordinateReferenceSystem &crs, const QMap< QString, QString > &metadata=QMap< QString, QString >()) const |
Creates mesh data source from a file name fileName and a driver driverName, that is the mesh frame stored in file, memory or with other way (depending of the provider) Since QGIS 3.38 the optional metadata argument can be used to pass metadata to the provider. | |
virtual bool | createMeshData (const QgsMesh &mesh, const QString &uri, const QgsCoordinateReferenceSystem &crs, const QMap< QString, QString > &metadata=QMap< QString, QString >()) const |
Creates mesh data source from an uri, that is the mesh frame stored in file, memory or with other way (depending of the provider) Since QGIS 3.38 the optional metadata argument can be used to pass metadata to the provider. | |
virtual QgsDataProvider * | createProvider (const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags=Qgis::DataProviderReadFlags()) |
Class factory to return a pointer to a newly created QgsDataProvider object. | |
virtual QgsRasterDataProvider * | createRasterDataProvider (const QString &uri, const QString &format, int nBands, Qgis::DataType type, int width, int height, double *geoTransform, const QgsCoordinateReferenceSystem &crs, const QStringList &createOptions=QStringList()) |
Creates a new instance of the raster data provider. | |
virtual QgsTransaction * | createTransaction (const QString &connString) |
Returns new instance of transaction. | |
virtual QList< QgsDataItemProvider * > | dataItemProviders () const |
Returns data item providers. | |
QMap< QString, QgsAbstractDatabaseProviderConnection * > | dbConnections (bool cached=true) |
Returns a dictionary of database provider connections, the dictionary key is the connection identifier. | |
virtual QVariantMap | decodeUri (const QString &uri) const |
Breaks a provider data source URI into its component paths (e.g. | |
virtual void | deleteConnection (const QString &name) |
Removes the connection with the given name from the settings. | |
virtual bool | deleteStyleById (const QString &uri, const QString &styleId, QString &errCause) |
Deletes a layer style defined by styleId. | |
QString | description () const |
This returns descriptive text for the provider. | |
virtual QString | encodeUri (const QVariantMap &parts) const |
Reassembles a provider data source URI from its component paths (e.g. | |
virtual QString | filters (Qgis::FileFilterType type) |
Builds the list of file filter strings (supported formats) | |
QgsAbstractProviderConnection * | findConnection (const QString &name, bool cached=true) |
Searches and returns a (possibly nullptr ) connection from the stored provider connections. | |
virtual QString | getStyleById (const QString &uri, const QString &styleId, QString &errCause) |
Gets a layer style defined by uri. | |
virtual QIcon | icon () const |
Returns an icon representing the provider. | |
virtual void | initProvider () |
Initialize the provider. | |
QString | key () const |
This returns the unique key associated with the provider. | |
Q_DECL_DEPRECATED QString | library () const |
This returns the library file name. | |
virtual int | listStyles (const QString &uri, QStringList &ids, QStringList &names, QStringList &descriptions, QString &errCause) |
Lists stored layer styles in the provider defined by uri. | |
virtual QString | loadStoredStyle (const QString &uri, QString &styleName, QString &errCause) |
Loads a layer style from the provider storage, reporting its name. | |
virtual QString | loadStyle (const QString &uri, QString &errCause) |
Loads a layer style defined by uri. | |
virtual QList< QgsMeshDriverMetadata > | meshDriversMetadata () |
Builds the list of available mesh drivers metadata. | |
virtual int | priorityForUri (const QString &uri) const |
Returns an integer representing the priority which this provider should have when opening a dataset with the specified uri. | |
virtual QgsProviderMetadata::ProviderCapabilities | providerCapabilities () const |
Returns the provider's capabilities. | |
virtual QList< QPair< QString, QString > > | pyramidResamplingMethods () |
Returns pyramid resampling methods available for provider. | |
virtual QList< QgsProviderSublayerDetails > | querySublayers (const QString &uri, Qgis::SublayerQueryFlags flags=Qgis::SublayerQueryFlags(), QgsFeedback *feedback=nullptr) const |
Queries the specified uri and returns a list of any valid sublayers found in the dataset which can be handled by this provider. | |
virtual QString | relativeToAbsoluteUri (const QString &uri, const QgsReadWriteContext &context) const |
Converts relative path(s) to absolute path(s) in the given provider-specific URI. | |
virtual void | saveConnection (const QgsAbstractProviderConnection *connection, const QString &name) |
Stores the connection in the settings. | |
virtual bool | saveLayerMetadata (const QString &uri, const QgsLayerMetadata &metadata, QString &errorMessage) |
Saves metadata to the layer corresponding to the specified uri. | |
virtual bool | saveStyle (const QString &uri, const QString &qmlStyle, const QString &sldStyle, const QString &styleName, const QString &styleDescription, const QString &uiFileContent, bool useAsDefault, QString &errCause) |
Saves a layer style to provider. | |
virtual QStringList | sidecarFilesForUri (const QString &uri) const |
Given a uri, returns any sidecar files which are associated with the URI and this provider. | |
virtual bool | styleExists (const QString &uri, const QString &styleId, QString &errorCause) |
Returns true if a layer style with the specified styleId exists in the provider defined by uri. | |
virtual QString | suggestGroupNameForUri (const QString &uri) const |
Returns a name that can be used as a group name for sublayers retrieved from the specified uri. | |
virtual QList< Qgis::LayerType > | supportedLayerTypes () const |
Returns a list of the map layer types supported by the provider. | |
virtual bool | uriIsBlocklisted (const QString &uri) const |
Returns true if the specified uri is known by this provider to be something which should be blocklisted from the QGIS interface, e.g. | |
virtual QList< Qgis::LayerType > | validLayerTypesForUri (const QString &uri) const |
Returns a list of valid layer types which the provider can be used with when opening the specified uri. | |
Static Public Member Functions | |
static bool | boolParameter (const QVariantMap &uri, const QString ¶meter, bool defaultValue=false) |
Returns the parameter value in the uri as a bool. | |
static void | setBoolParameter (QVariantMap &uri, const QString ¶meter, const QVariant &value) |
Sets the value into the uri parameter as a bool. | |
Holds data provider key, description, and associated shared library file or function pointer information.
Provider metadata refers either to providers which are loaded via libraries or which are native providers that are included in the core QGIS installation and accessed through function pointers.
For library based providers, the metadata class is used in a lazy load implementation in QgsProviderRegistry. To save memory, data providers are only actually loaded via QLibrary calls if they're to be used. (Though they're all iteratively loaded once to get their metadata information, and then unloaded when the QgsProviderRegistry is created.) QgsProviderMetadata supplies enough information to be able to later load the associated shared library object.
Definition at line 176 of file qgsprovidermetadata.h.
typedef std::function< QgsDataProvider*( const QString &, const QgsDataProvider::ProviderOptions &, Qgis::DataProviderReadFlags & ) > QgsProviderMetadata::CreateDataProviderFunction |
Typedef for data provider creation function.
Definition at line 212 of file qgsprovidermetadata.h.
typedef QFlags< ProviderCapability > QgsProviderMetadata::ProviderCapabilities |
Definition at line 207 of file qgsprovidermetadata.h.
typedef QFlags< ProviderMetadataCapability > QgsProviderMetadata::ProviderMetadataCapabilities |
Definition at line 194 of file qgsprovidermetadata.h.
Provider capabilities.
Definition at line 201 of file qgsprovidermetadata.h.
Indicates capabilities of the provider metadata implementation.
Definition at line 187 of file qgsprovidermetadata.h.
QgsProviderMetadata::QgsProviderMetadata | ( | const QString & | key, |
const QString & | description, | ||
const QString & | library = QString() |
||
) |
Constructor for provider metadata.
key | provider key |
description | provider description |
library | plugin library file name (empty if the provider is not loaded from a library) |
Definition at line 27 of file qgsprovidermetadata.cpp.
QgsProviderMetadata::QgsProviderMetadata | ( | const QString & | key, |
const QString & | description, | ||
const QgsProviderMetadata::CreateDataProviderFunction & | createFunc | ||
) |
Metadata for provider with direct provider creation function pointer, where no library is involved.
Definition at line 35 of file qgsprovidermetadata.cpp.
|
virtual |
Definition at line 41 of file qgsprovidermetadata.cpp.
|
virtual |
Converts absolute path(s) to relative path(s) in the given provider-specific URI.
and returns modified URI according to the context object's configuration. This is commonly used when writing project files. If a provider does not work with paths, unmodified URI will be returned.
Definition at line 191 of file qgsprovidermetadata.cpp.
|
static |
Returns the parameter value in the uri as a bool.
eg. "yes" value will be returned as true
, 0 will be returned as false
Definition at line 163 of file qgsprovidermetadata.cpp.
|
virtual |
Returns the provider metadata capabilities.
Definition at line 61 of file qgsprovidermetadata.cpp.
|
virtual |
|
signal |
Emitted when the connection with the specified name is changed, e.g.
the settings relating to the connection have been updated.
|
signal |
Emitted when a connection with the specified name is created.
|
signal |
Emitted when the connection with the specified name was deleted.
|
virtual |
Returns a dictionary of stored provider connections, the dictionary key is the connection identifier.
Ownership is not transferred. Raises a QgsProviderConnectionException if any errors are encountered.
cached | if false connections will be re-read from the settings |
QgsProviderConnectionException |
Definition at line 314 of file qgsprovidermetadata.cpp.
QMap< QString, T * > QgsProviderMetadata::connections | ( | bool | cached = true | ) |
Returns a dictionary of provider connections of the specified type T, the dictionary key is the connection identifier.
cached | if false connections will be re-read from the settings |
Definition at line 381 of file qgsprovidermetadata.cpp.
|
virtual |
Creates a new connection by loading the connection with the given name from the settings.
Ownership is transferred to the caller.
QgsProviderConnectionException |
Definition at line 339 of file qgsprovidermetadata.cpp.
|
virtual |
Creates a new connection from uri and configuration, the newly created connection is not automatically stored in the settings, call saveConnection() to save it.
Ownership is transferred to the caller.
QgsProviderConnectionException |
Definition at line 346 of file qgsprovidermetadata.cpp.
|
virtual |
Creates a new empty database at the specified uri.
This method can be used for supported providers to construct a new empty database. For instance, the OGR provider metadata createDatabase() method can be used to create new empty GeoPackage or FileGeodatabase databases.
uri | destination URI for newly created database. |
errorMessage | will be set to a descriptive error message if the database could not be successfully created. |
true
if the database was successfully createdDefinition at line 210 of file qgsprovidermetadata.cpp.
|
virtual |
Creates database by the provider on the path.
Definition at line 303 of file qgsprovidermetadata.cpp.
|
virtual |
Creates new empty vector layer.
Definition at line 201 of file qgsprovidermetadata.cpp.
QgsProviderMetadata::CreateDataProviderFunction QgsProviderMetadata::createFunction | ( | ) | const |
Returns a pointer to the direct provider creation function, if supported by the provider.
Definition at line 86 of file qgsprovidermetadata.cpp.
|
virtual |
Creates mesh data source from a file name fileName and a driver driverName, that is the mesh frame stored in file, memory or with other way (depending of the provider) Since QGIS 3.38 the optional metadata argument can be used to pass metadata to the provider.
Definition at line 226 of file qgsprovidermetadata.cpp.
|
virtual |
Creates mesh data source from an uri, that is the mesh frame stored in file, memory or with other way (depending of the provider) Since QGIS 3.38 the optional metadata argument can be used to pass metadata to the provider.
Definition at line 235 of file qgsprovidermetadata.cpp.
|
virtual |
Class factory to return a pointer to a newly created QgsDataProvider object.
uri | the datasource uri |
options | creation options |
flags | creation flags, sing QGIS 3.16 |
Definition at line 136 of file qgsprovidermetadata.cpp.
|
virtual |
Creates a new instance of the raster data provider.
Definition at line 216 of file qgsprovidermetadata.cpp.
|
virtual |
Returns new instance of transaction.
Ownership is transferred to the caller
Definition at line 309 of file qgsprovidermetadata.cpp.
|
virtual |
Returns data item providers.
Caller is responsible for ownership of the item providers
Definition at line 248 of file qgsprovidermetadata.cpp.
QMap< QString, QgsAbstractDatabaseProviderConnection * > QgsProviderMetadata::dbConnections | ( | bool | cached = true | ) |
Returns a dictionary of database provider connections, the dictionary key is the connection identifier.
Ownership is not transferred. Raises a QgsProviderConnectionException if any errors are encountered.
cached | if false connections will be re-read from the settings |
QgsProviderConnectionException |
Definition at line 320 of file qgsprovidermetadata.cpp.
|
virtual |
Breaks a provider data source URI into its component paths (e.g.
file path, layer name).
uri | uri string |
Definition at line 181 of file qgsprovidermetadata.cpp.
|
virtual |
Removes the connection with the given name from the settings.
Raises a QgsProviderConnectionException if any errors are encountered.
QgsProviderConnectionException |
Definition at line 353 of file qgsprovidermetadata.cpp.
|
virtual |
Deletes a layer style defined by styleId.
Definition at line 273 of file qgsprovidermetadata.cpp.
QString QgsProviderMetadata::description | ( | ) | const |
This returns descriptive text for the provider.
This is used to provide a descriptive list of available data providers.
Definition at line 51 of file qgsprovidermetadata.cpp.
|
virtual |
Reassembles a provider data source URI from its component paths (e.g.
file path, layer name).
parts | parts as returned by decodeUri |
Definition at line 186 of file qgsprovidermetadata.cpp.
|
virtual |
Builds the list of file filter strings (supported formats)
Suitable for use in a QFileDialog::getOpenFileNames() call.
Definition at line 101 of file qgsprovidermetadata.cpp.
QgsAbstractProviderConnection * QgsProviderMetadata::findConnection | ( | const QString & | name, |
bool | cached = true |
||
) |
Searches and returns a (possibly nullptr
) connection from the stored provider connections.
Ownership is not transferred. Raises a QgsProviderConnectionException if any errors are encountered.
name | the connection name |
cached | if false connections will be re-read from the settings |
QgsProviderConnectionException |
Definition at line 325 of file qgsprovidermetadata.cpp.
|
virtual |
Gets a layer style defined by uri.
Definition at line 267 of file qgsprovidermetadata.cpp.
|
virtual |
Returns an icon representing the provider.
Definition at line 56 of file qgsprovidermetadata.cpp.
|
virtual |
QString QgsProviderMetadata::key | ( | ) | const |
This returns the unique key associated with the provider.
This key string is used for the associative container in QgsProviderRegistry
Definition at line 46 of file qgsprovidermetadata.cpp.
QString QgsProviderMetadata::library | ( | ) | const |
This returns the library file name.
This is used to QLibrary calls to load the data provider (only for dynamically loaded libraries)
Definition at line 76 of file qgsprovidermetadata.cpp.
|
virtual |
Lists stored layer styles in the provider defined by uri.
Definition at line 253 of file qgsprovidermetadata.cpp.
|
virtual |
Loads a layer style from the provider storage, reporting its name.
uri | data source uri |
styleName | the name of the style if available, empty otherwise |
errCause | report errors |
Definition at line 292 of file qgsprovidermetadata.cpp.
|
virtual |
Loads a layer style defined by uri.
Definition at line 286 of file qgsprovidermetadata.cpp.
|
virtual |
Builds the list of available mesh drivers metadata.
Definition at line 106 of file qgsprovidermetadata.cpp.
|
virtual |
Returns an integer representing the priority which this provider should have when opening a dataset with the specified uri.
A larger priority means that the provider should be selected over others with a lower priority for the same URI.
The default implementation returns 0 for all URIs.
Definition at line 111 of file qgsprovidermetadata.cpp.
|
virtual |
Returns the provider's capabilities.
Definition at line 66 of file qgsprovidermetadata.cpp.
|
virtual |
Returns pyramid resampling methods available for provider.
Definition at line 243 of file qgsprovidermetadata.cpp.
|
virtual |
Queries the specified uri and returns a list of any valid sublayers found in the dataset which can be handled by this provider.
The optional flags argument can be used to control the behavior of the query.
The optional feedback argument can be used to provide cancellation support for long-running queries.
Definition at line 131 of file qgsprovidermetadata.cpp.
|
virtual |
Converts relative path(s) to absolute path(s) in the given provider-specific URI.
and returns modified URI according to the context object's configuration. This is commonly used when reading project files. If a provider does not work with paths, unmodified URI will be returned.
Definition at line 196 of file qgsprovidermetadata.cpp.
|
virtual |
Stores the connection in the settings.
connection | the connection to be stored in the settings |
name | the name under which the connection will be stored |
QgsProviderConnectionException |
Definition at line 359 of file qgsprovidermetadata.cpp.
|
virtual |
Saves metadata to the layer corresponding to the specified uri.
uri | uri of layer to store metadata for |
metadata | layer metadata |
errorMessage | descriptive string of error if encountered |
true
if the metadata was successfully saved.QgsNotSupportedException | if the provider does not support saving layer metadata for the specified uri. |
Definition at line 298 of file qgsprovidermetadata.cpp.
|
virtual |
Saves a layer style to provider.
Definition at line 279 of file qgsprovidermetadata.cpp.
|
static |
Sets the value into the uri parameter as a bool.
eg. "yes" value will be saved as true
, 0 will be saved as false
Definition at line 147 of file qgsprovidermetadata.cpp.
|
virtual |
Given a uri, returns any sidecar files which are associated with the URI and this provider.
In this context a sidecar file is defined as a file which shares the same base filename as a dataset, but which differs in file extension. It defines the list of additional files which must be renamed or deleted alongside the main file associated with the dataset in order to completely rename/delete the dataset.
For instance, the OGR provider would return the corresponding .dbf, .idx, etc files for a uri pointing at a .shp file.
Implementations should files any files which MAY exist for the URI, and it is up to the caller to filter these to only existing files if required.
Definition at line 126 of file qgsprovidermetadata.cpp.
|
virtual |
Returns true
if a layer style with the specified styleId exists in the provider defined by uri.
uri | provider URI |
styleId | style ID to test for |
errorCause | will be set to a descriptive error message, if an error occurs while checking if the style exists |
true
if the layer style already existsDefinition at line 261 of file qgsprovidermetadata.cpp.
|
virtual |
Returns a name that can be used as a group name for sublayers retrieved from the specified uri.
The default implementation returns an empty string.
Definition at line 81 of file qgsprovidermetadata.cpp.
|
virtual |
Returns a list of the map layer types supported by the provider.
Definition at line 71 of file qgsprovidermetadata.cpp.
|
virtual |
Returns true
if the specified uri is known by this provider to be something which should be blocklisted from the QGIS interface, e.g.
an internal detail only.
Specifically, this method can be utilized by the browser panel to hide noisy internal details by returning true
for URIs which are known to be sidecar files only, such as ".aux.xml" files or ".shp.xml" files, or the "ept-build.json" files which sit alongside Entwine "ept.json" point cloud sources.
The default method returns false
for all URIs.
true
from an implementation of this method indicates that ALL providers should ignore the specified uri, not just the provider associated with this metadata!Definition at line 121 of file qgsprovidermetadata.cpp.
|
virtual |
Returns a list of valid layer types which the provider can be used with when opening the specified uri.
Definition at line 116 of file qgsprovidermetadata.cpp.