Skip to content

Commit d6f0dbd

Browse files
committedMar 4, 2015
Allow 3rd-party data item providers to be plugged
1 parent 68c5e39 commit d6f0dbd

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed
 

‎python/core/qgsdataitemproviderregistry.sip

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ class QgsDataItemProviderRegistry
1313
//! Get list of available providers
1414
QList<QgsDataItemProvider*> providers() const;
1515

16+
//! Add a provider implementation. Takes ownership of the object.
17+
void addProvider( QgsDataItemProvider* provider /Transfer/ );
18+
19+
//! Remove provider implementation from the list (provider object is deleted)
20+
void removeProvider( QgsDataItemProvider* provider );
21+
1622
private:
1723
QgsDataItemProviderRegistry();
1824

‎src/core/qgsdataitemproviderregistry.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,14 @@ QgsDataItemProviderRegistry::~QgsDataItemProviderRegistry()
8484
qDeleteAll( mProviders );
8585
}
8686

87+
void QgsDataItemProviderRegistry::addProvider( QgsDataItemProvider* provider )
88+
{
89+
mProviders.append( provider );
90+
}
91+
92+
void QgsDataItemProviderRegistry::removeProvider( QgsDataItemProvider* provider )
93+
{
94+
int index = mProviders.indexOf( provider );
95+
if ( index >= 0 )
96+
delete mProviders.takeAt( index );
97+
}

‎src/core/qgsdataitemproviderregistry.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ class CORE_EXPORT QgsDataItemProviderRegistry : public QgsSingleton<QgsDataItemP
3636
//! Get list of available providers
3737
QList<QgsDataItemProvider*> providers() const { return mProviders; }
3838

39+
//! Add a provider implementation. Takes ownership of the object.
40+
void addProvider( QgsDataItemProvider* provider );
41+
42+
//! Remove provider implementation from the list (provider object is deleted)
43+
void removeProvider( QgsDataItemProvider* provider );
44+
3945
private:
4046
QgsDataItemProviderRegistry();
4147

0 commit comments

Comments
 (0)
Please sign in to comment.