Skip to content

Commit 9d66eb8

Browse files
committed
API to register new vector data providers
1 parent 222f3ad commit 9d66eb8

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

python/core/auto_generated/qgsproviderregistry.sip.in

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,19 @@ Returns a string containing the available protocol drivers
180180

181181
void registerGuis( QWidget *widget );
182182

183+
void registerProvider( QgsProviderMetadata *providerMetadata /Transfer/ );
184+
%Docstring
185+
register a new vector data provider from its ``providerMetadata``
186+
187+
:param providerMetadata: QgsProviderMetadata instance describing the new provider
188+
189+
.. note::
190+
191+
ownership of the QgsProviderMetadata instance is transferred to the registry
192+
193+
.. versionadded:: 3.2
194+
%End
195+
183196

184197

185198
private:

src/core/qgsproviderregistry.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,12 @@ void QgsProviderRegistry::registerGuis( QWidget *parent )
525525
}
526526
}
527527

528+
void QgsProviderRegistry::registerProvider( QgsProviderMetadata *providerMetadata )
529+
{
530+
if ( providerMetadata )
531+
mProviders[ providerMetadata->key() ] = providerMetadata;
532+
}
533+
528534
QString QgsProviderRegistry::fileVectorFilters() const
529535
{
530536
return mVectorFileFilters;

src/core/qgsproviderregistry.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,14 @@ class CORE_EXPORT QgsProviderRegistry
179179

180180
void registerGuis( QWidget *widget );
181181

182+
/**
183+
* \brief register a new vector data provider from its \a providerMetadata
184+
* \param providerMetadata QgsProviderMetadata instance describing the new provider
185+
* \note ownership of the QgsProviderMetadata instance is transferred to the registry
186+
* \since QGIS 3.2
187+
*/
188+
void registerProvider( QgsProviderMetadata *providerMetadata SIP_TRANSFER );
189+
182190
/**
183191
* Open the given vector data source
184192
*

0 commit comments

Comments
 (0)