Skip to content

Commit

Permalink
Add QgsRasterDataProvider::Capability::ReloadData for gdal, ams and w…
Browse files Browse the repository at this point in the history
…cs provider
  • Loading branch information
m-kuhn authored and nyalldawson committed Dec 13, 2020
1 parent 14cdc67 commit 0d55e61
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 15 deletions.
Expand Up @@ -76,7 +76,8 @@ Base class for raster data providers.
ReadLayerMetadata,
WriteLayerMetadata,
ProviderHintBenefitsFromResampling,
ProviderHintCanPerformProviderResampling
ProviderHintCanPerformProviderResampling,
ReloadData
};

typedef QFlags<QgsRasterDataProvider::ProviderCapability> ProviderCapabilities;
Expand Down
5 changes: 3 additions & 2 deletions src/core/providers/gdal/qgsgdalprovider.cpp
Expand Up @@ -1641,8 +1641,9 @@ QString QgsGdalProvider::description() const

QgsRasterDataProvider::ProviderCapabilities QgsGdalProvider::providerCapabilities() const
{
return QgsRasterDataProvider::ProviderHintBenefitsFromResampling |
QgsRasterDataProvider::ProviderHintCanPerformProviderResampling;
return ProviderCapability::ProviderHintBenefitsFromResampling |
ProviderCapability::ProviderHintCanPerformProviderResampling |
ProviderCapability::ReloadData;
}

// This is used also by global isValidRasterFileName
Expand Down
3 changes: 2 additions & 1 deletion src/core/raster/qgsrasterdataprovider.h
Expand Up @@ -101,7 +101,8 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast
ReadLayerMetadata = 1 << 1, //!< Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider::layerMetadata()
WriteLayerMetadata = 1 << 2, //!< Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider::writeLayerMetadata()
ProviderHintBenefitsFromResampling = 1 << 3, //!< Provider benefits from resampling and should apply user default resampling settings (since QGIS 3.10)
ProviderHintCanPerformProviderResampling = 1 << 4 //!< Provider can perform resampling (to be opposed to post rendering resampling) (since QGIS 3.16)
ProviderHintCanPerformProviderResampling = 1 << 4, //!< Provider can perform resampling (to be opposed to post rendering resampling) (since QGIS 3.16)
ReloadData = 1 << 5 //!< Is able to force reload data / clear local caches. Since QGIS 3.18, see QgsDataProvider::reloadProviderData()
};

//! Provider capabilities
Expand Down
20 changes: 10 additions & 10 deletions src/core/raster/qgsrasterinterface.h
Expand Up @@ -183,16 +183,16 @@ class CORE_EXPORT QgsRasterInterface
enum Capability
{
NoCapabilities = 0,
Size = 1 << 1, // original data source size (and thus resolution) is known, it is not always available, for example for WMS
Create = 1 << 2, // create new datasets
Remove = 1 << 3, // delete datasets
BuildPyramids = 1 << 4, // supports building of pyramids (overviews)
Identify = 1 << 5, // at least one identify format supported
IdentifyValue = 1 << 6, // numerical values
IdentifyText = 1 << 7, // WMS text
IdentifyHtml = 1 << 8, // WMS HTML
IdentifyFeature = 1 << 9, // WMS GML -> feature
Prefetch = 1 << 10, // allow prefetching of out-of-view images
Size = 1 << 1, //!< Original data source size (and thus resolution) is known, it is not always available, for example for WMS
Create = 1 << 2, //!< Create new datasets
Remove = 1 << 3, //!< Delete datasets
BuildPyramids = 1 << 4, //!< Supports building of pyramids (overviews)
Identify = 1 << 5, //!< At least one identify format supported
IdentifyValue = 1 << 6, //!< Numerical values
IdentifyText = 1 << 7, //!< WMS text
IdentifyHtml = 1 << 8, //!< WMS HTML
IdentifyFeature = 1 << 9, //!< WMS GML -> feature
Prefetch = 1 << 10, //!< Allow prefetching of out-of-view images
};

QgsRasterInterface( QgsRasterInterface *input = nullptr );
Expand Down
2 changes: 1 addition & 1 deletion src/providers/arcgisrest/qgsamsprovider.cpp
Expand Up @@ -338,7 +338,7 @@ QgsAmsProvider::QgsAmsProvider( const QgsAmsProvider &other, const QgsDataProvid

QgsRasterDataProvider::ProviderCapabilities QgsAmsProvider::providerCapabilities() const
{
return QgsRasterDataProvider::ReadLayerMetadata;
return ProviderCapability::ReadLayerMetadata | ProviderCapability::ReloadData;
}

QString QgsAmsProvider::name() const { return AMS_PROVIDER_KEY; }
Expand Down
5 changes: 5 additions & 0 deletions src/providers/wcs/qgswcsprovider.cpp
Expand Up @@ -1595,6 +1595,11 @@ QString QgsWcsProvider::description() const
return WCS_DESCRIPTION;
}

QgsRasterDataProvider::ProviderCapabilities QgsWcsProvider::providerCapabilities() const
{
return ProviderCapability::ReloadData;
}

void QgsWcsProvider::reloadProviderData()
{
clearCache();
Expand Down
1 change: 1 addition & 0 deletions src/providers/wcs/qgswcsprovider.h
Expand Up @@ -187,6 +187,7 @@ class QgsWcsProvider final: public QgsRasterDataProvider, QgsGdalProviderBase
QString lastErrorFormat() override;
QString name() const override;
QString description() const override;
QgsRasterDataProvider::ProviderCapabilities providerCapabilities() const override;
QList<QgsColorRampShader::ColorRampItem> colorTable( int bandNo )const override;

int colorInterpretation( int bandNo ) const override;
Expand Down

0 comments on commit 0d55e61

Please sign in to comment.