|
@@ -36,10 +36,11 @@ typedef QList<QgsDataItemProvider *> *dataItemProviders_t(); |
|
|
class QgsDataItemProviderFromPlugin : public QgsDataItemProvider |
|
|
{ |
|
|
public: |
|
|
QgsDataItemProviderFromPlugin( const QString &name, dataCapabilities_t *capabilitiesFunc, dataItem_t *dataItemFunc ) |
|
|
QgsDataItemProviderFromPlugin( const QString &name, dataCapabilities_t *capabilitiesFunc, dataItem_t *dataItemFunc, handlesDirectoryPath_t *handlesDirectoryPathFunc ) |
|
|
: mName( name ) |
|
|
, mCapabilitiesFunc( capabilitiesFunc ) |
|
|
, mDataItemFunc( dataItemFunc ) |
|
|
, mHandlesDirectoryPathFunc( handlesDirectoryPathFunc ) |
|
|
{ |
|
|
} |
|
|
|
|
@@ -49,10 +50,19 @@ class QgsDataItemProviderFromPlugin : public QgsDataItemProvider |
|
|
|
|
|
QgsDataItem *createDataItem( const QString &path, QgsDataItem *parentItem ) override { return mDataItemFunc( path, parentItem ); } |
|
|
|
|
|
bool handlesDirectoryPath( const QString &path ) override |
|
|
{ |
|
|
if ( mHandlesDirectoryPathFunc ) |
|
|
return mHandlesDirectoryPathFunc( path ); |
|
|
else |
|
|
return false; |
|
|
} |
|
|
|
|
|
protected: |
|
|
QString mName; |
|
|
dataCapabilities_t *mCapabilitiesFunc = nullptr; |
|
|
dataItem_t *mDataItemFunc = nullptr; |
|
|
handlesDirectoryPath_t *mHandlesDirectoryPathFunc = nullptr; |
|
|
}; |
|
|
|
|
|
|
|
@@ -93,7 +103,9 @@ QgsDataItemProviderRegistry::QgsDataItemProviderRegistry() |
|
|
continue; |
|
|
} |
|
|
|
|
|
mProviders.append( new QgsDataItemProviderFromPlugin( library->fileName(), dataCapabilities, dataItem ) ); |
|
|
handlesDirectoryPath_t *handlesDirectoryPath = reinterpret_cast< handlesDirectoryPath_t * >( cast_to_fptr( library->resolve( "handlesDirectoryPath" ) ) ); |
|
|
|
|
|
mProviders.append( new QgsDataItemProviderFromPlugin( library->fileName(), dataCapabilities, dataItem, handlesDirectoryPath ) ); |
|
|
} |
|
|
} |
|
|
|
|
|