Allow 3rd-party data item providers to be plugged

This commit is contained in:
Martin Dobias 2015-03-05 00:09:39 +07:00
parent 68c5e39ac6
commit d6f0dbd403
3 changed files with 23 additions and 0 deletions

View File

@ -13,6 +13,12 @@ class QgsDataItemProviderRegistry
//! Get list of available providers
QList<QgsDataItemProvider*> providers() const;
//! Add a provider implementation. Takes ownership of the object.
void addProvider( QgsDataItemProvider* provider /Transfer/ );
//! Remove provider implementation from the list (provider object is deleted)
void removeProvider( QgsDataItemProvider* provider );
private:
QgsDataItemProviderRegistry();

View File

@ -84,3 +84,14 @@ QgsDataItemProviderRegistry::~QgsDataItemProviderRegistry()
qDeleteAll( mProviders );
}
void QgsDataItemProviderRegistry::addProvider( QgsDataItemProvider* provider )
{
mProviders.append( provider );
}
void QgsDataItemProviderRegistry::removeProvider( QgsDataItemProvider* provider )
{
int index = mProviders.indexOf( provider );
if ( index >= 0 )
delete mProviders.takeAt( index );
}

View File

@ -36,6 +36,12 @@ class CORE_EXPORT QgsDataItemProviderRegistry : public QgsSingleton<QgsDataItemP
//! Get list of available providers
QList<QgsDataItemProvider*> providers() const { return mProviders; }
//! Add a provider implementation. Takes ownership of the object.
void addProvider( QgsDataItemProvider* provider );
//! Remove provider implementation from the list (provider object is deleted)
void removeProvider( QgsDataItemProvider* provider );
private:
QgsDataItemProviderRegistry();