Skip to content

Commit

Permalink
Allow 3rd-party data item providers to be plugged
Browse files Browse the repository at this point in the history
  • Loading branch information
wonder-sk committed Mar 4, 2015
1 parent 68c5e39 commit d6f0dbd
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
6 changes: 6 additions & 0 deletions python/core/qgsdataitemproviderregistry.sip
Expand Up @@ -13,6 +13,12 @@ class QgsDataItemProviderRegistry
//! Get list of available providers //! Get list of available providers
QList<QgsDataItemProvider*> providers() const; 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: private:
QgsDataItemProviderRegistry(); QgsDataItemProviderRegistry();


Expand Down
11 changes: 11 additions & 0 deletions src/core/qgsdataitemproviderregistry.cpp
Expand Up @@ -84,3 +84,14 @@ QgsDataItemProviderRegistry::~QgsDataItemProviderRegistry()
qDeleteAll( mProviders ); 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 );
}
6 changes: 6 additions & 0 deletions src/core/qgsdataitemproviderregistry.h
Expand Up @@ -36,6 +36,12 @@ class CORE_EXPORT QgsDataItemProviderRegistry : public QgsSingleton<QgsDataItemP
//! Get list of available providers //! Get list of available providers
QList<QgsDataItemProvider*> providers() const { return mProviders; } 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: private:
QgsDataItemProviderRegistry(); QgsDataItemProviderRegistry();


Expand Down

0 comments on commit d6f0dbd

Please sign in to comment.