API to register new vector data providers

This commit is contained in:
Alessandro Pasotti 2018-04-19 19:22:41 +02:00
parent 222f3ad9e0
commit 9d66eb8db4
3 changed files with 27 additions and 0 deletions

View File

@ -180,6 +180,19 @@ Returns a string containing the available protocol drivers
void registerGuis( QWidget *widget );
void registerProvider( QgsProviderMetadata *providerMetadata /Transfer/ );
%Docstring
register a new vector data provider from its ``providerMetadata``
:param providerMetadata: QgsProviderMetadata instance describing the new provider
.. note::
ownership of the QgsProviderMetadata instance is transferred to the registry
.. versionadded:: 3.2
%End
private:

View File

@ -525,6 +525,12 @@ void QgsProviderRegistry::registerGuis( QWidget *parent )
}
}
void QgsProviderRegistry::registerProvider( QgsProviderMetadata *providerMetadata )
{
if ( providerMetadata )
mProviders[ providerMetadata->key() ] = providerMetadata;
}
QString QgsProviderRegistry::fileVectorFilters() const
{
return mVectorFileFilters;

View File

@ -179,6 +179,14 @@ class CORE_EXPORT QgsProviderRegistry
void registerGuis( QWidget *widget );
/**
* \brief register a new vector data provider from its \a providerMetadata
* \param providerMetadata QgsProviderMetadata instance describing the new provider
* \note ownership of the QgsProviderMetadata instance is transferred to the registry
* \since QGIS 3.2
*/
void registerProvider( QgsProviderMetadata *providerMetadata SIP_TRANSFER );
/**
* Open the given vector data source
*