Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move vector tile provider capabilities enum to Qgis
  • Loading branch information
nyalldawson committed May 16, 2023
1 parent babfd33 commit 12c261b
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 25 deletions.
7 changes: 7 additions & 0 deletions python/core/auto_additions/qgis.py
Expand Up @@ -3614,6 +3614,13 @@
# --
Qgis.FeatureSymbologyExport.baseClass = Qgis
# monkey patching scoped based enum
Qgis.VectorTileProviderCapability.ReadLayerMetadata.__doc__ = "Provider can read layer metadata from data store. See QgsDataProvider.layerMetadata()"
Qgis.VectorTileProviderCapability.__doc__ = 'Enumeration with capabilities that vector tile data providers might implement.\n\n.. versionadded:: 3.32\n\n' + '* ``ReadLayerMetadata``: ' + Qgis.VectorTileProviderCapability.ReadLayerMetadata.__doc__
# --
Qgis.VectorTileProviderCapability.baseClass = Qgis
Qgis.VectorTileProviderCapabilities.baseClass = Qgis
VectorTileProviderCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module
# monkey patching scoped based enum
Qgis.TileAvailability.Available.__doc__ = "Tile is available within the matrix"
Qgis.TileAvailability.NotAvailable.__doc__ = "Tile is not available within the matrix, e.g. there is no content for the tile"
Qgis.TileAvailability.AvailableNoChildren.__doc__ = "Tile is available within the matrix, and is known to have no children (ie no higher zoom level tiles exist covering this tile's region)"
Expand Down
10 changes: 10 additions & 0 deletions python/core/auto_generated/qgis.sip.in
Expand Up @@ -2047,6 +2047,14 @@ The development version
PerSymbolLayer
};

enum class VectorTileProviderCapability
{
ReadLayerMetadata,
};

typedef QFlags<Qgis::VectorTileProviderCapability> VectorTileProviderCapabilities;


enum class TileAvailability
{
Available,
Expand Down Expand Up @@ -2209,6 +2217,8 @@ QFlags<Qgis::DatabaseProviderConnectionCapability2> operator|(Qgis::DatabaseProv

QFlags<Qgis::VectorFileWriterCapability> operator|(Qgis::VectorFileWriterCapability f1, QFlags<Qgis::VectorFileWriterCapability> f2);

QFlags<Qgis::VectorTileProviderCapability> operator|(Qgis::VectorTileProviderCapability f1, QFlags<Qgis::VectorTileProviderCapability> f2);




Expand Down
19 changes: 19 additions & 0 deletions src/core/qgis.h
Expand Up @@ -3553,6 +3553,24 @@ class CORE_EXPORT Qgis
};
Q_ENUM( FeatureSymbologyExport )

/**
* Enumeration with capabilities that vector tile data providers might implement.
* \since QGIS 3.32
*/
enum class VectorTileProviderCapability : int
{
ReadLayerMetadata = 1 << 1, //!< Provider can read layer metadata from data store. See QgsDataProvider::layerMetadata()
};
Q_ENUM( VectorTileProviderCapability )

/**
* Vector tile data provider capabilities.
*
* \since QGIS 3.32
*/
Q_DECLARE_FLAGS( VectorTileProviderCapabilities, VectorTileProviderCapability )
Q_FLAG( VectorTileProviderCapabilities )

/**
* Possible availability states for a tile within a tile matrix.
*
Expand Down Expand Up @@ -3727,6 +3745,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LabelLinePlacementFlags )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LabelPolygonPlacementFlags )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DatabaseProviderConnectionCapabilities2 )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorFileWriterCapabilities )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorTileProviderCapabilities )

// hack to workaround warnings when casting void pointers
// retrieved from QLibrary::resolve to function pointers.
Expand Down
Expand Up @@ -72,9 +72,9 @@ QgsArcGisVectorTileServiceDataProvider::QgsArcGisVectorTileServiceDataProvider(
mLayerMetadata = other.mLayerMetadata;
}

QgsVectorTileDataProvider::ProviderCapabilities QgsArcGisVectorTileServiceDataProvider::providerCapabilities() const
Qgis::VectorTileProviderCapabilities QgsArcGisVectorTileServiceDataProvider::providerCapabilities() const
{
return QgsVectorTileDataProvider::ProviderCapability::ReadLayerMetadata;
return Qgis::VectorTileProviderCapability::ReadLayerMetadata;
}

QString QgsArcGisVectorTileServiceDataProvider::name() const
Expand Down
Expand Up @@ -41,7 +41,7 @@ class CORE_EXPORT QgsArcGisVectorTileServiceDataProvider : public QgsXyzVectorTi
*/
QgsArcGisVectorTileServiceDataProvider &operator=( const QgsArcGisVectorTileServiceDataProvider &other ) = delete;

QgsVectorTileDataProvider::ProviderCapabilities providerCapabilities() const override;
Qgis::VectorTileProviderCapabilities providerCapabilities() const override;
QString name() const override;
QString description() const override;
QgsVectorTileDataProvider *clone() const override;
Expand Down
4 changes: 2 additions & 2 deletions src/core/vectortile/qgsvectortiledataprovider.cpp
Expand Up @@ -32,9 +32,9 @@ QgsVectorTileDataProvider::QgsVectorTileDataProvider( const QgsVectorTileDataPro
setTransformContext( other.transformContext() );
}

QgsVectorTileDataProvider::ProviderCapabilities QgsVectorTileDataProvider::providerCapabilities() const
Qgis::VectorTileProviderCapabilities QgsVectorTileDataProvider::providerCapabilities() const
{
return QgsVectorTileDataProvider::ProviderCapabilities();
return Qgis::VectorTileProviderCapabilities();
}

QgsRectangle QgsVectorTileDataProvider::extent() const
Expand Down
17 changes: 1 addition & 16 deletions src/core/vectortile/qgsvectortiledataprovider.h
Expand Up @@ -41,19 +41,6 @@ class CORE_EXPORT QgsVectorTileDataProvider : public QgsDataProvider

public:

/**
* Enumeration with capabilities that vector tile data providers might implement.
* \since QGIS 3.32
*/
enum class ProviderCapability : int
{
ReadLayerMetadata = 1 << 1, //!< Provider can read layer metadata from data store. See QgsDataProvider::layerMetadata()
};
Q_ENUM( ProviderCapability )

//! Provider capabilities
Q_DECLARE_FLAGS( ProviderCapabilities, ProviderCapability )

/**
* Constructor for QgsVectorTileDataProvider, with the specified \a uri.
*/
Expand All @@ -75,7 +62,7 @@ class CORE_EXPORT QgsVectorTileDataProvider : public QgsDataProvider
* Returns flags containing the supported capabilities of the data provider.
* \since QGIS 3.32
*/
virtual QgsVectorTileDataProvider::ProviderCapabilities providerCapabilities() const;
virtual Qgis::VectorTileProviderCapabilities providerCapabilities() const;

QgsRectangle extent() const override;
bool renderInPreview( const QgsDataProvider::PreviewContext &context ) override;
Expand Down Expand Up @@ -158,7 +145,5 @@ class CORE_EXPORT QgsVectorTileDataProvider : public QgsDataProvider
};


Q_DECLARE_OPERATORS_FOR_FLAGS( QgsVectorTileDataProvider::ProviderCapabilities )


#endif // QGSVECTORTILEDATAPROVIDER_H
2 changes: 1 addition & 1 deletion src/core/vectortile/qgsvectortilelayer.cpp
Expand Up @@ -475,7 +475,7 @@ QString QgsVectorTileLayer::loadDefaultMetadata( bool &resultFlag )
if ( !mDataProvider || !mDataProvider->isValid() )
return QString();

if ( qgis::down_cast< QgsVectorTileDataProvider * >( mDataProvider.get() )->providerCapabilities() & QgsVectorTileDataProvider::ProviderCapability::ReadLayerMetadata )
if ( qgis::down_cast< QgsVectorTileDataProvider * >( mDataProvider.get() )->providerCapabilities() & Qgis::VectorTileProviderCapability::ReadLayerMetadata )
{
setMetadata( mDataProvider->layerMetadata() );
}
Expand Down
4 changes: 2 additions & 2 deletions src/core/vectortile/qgsvtpkvectortiledataprovider.cpp
Expand Up @@ -83,9 +83,9 @@ QgsVtpkVectorTileDataProvider::QgsVtpkVectorTileDataProvider( const QgsVtpkVecto
mSpriteImage = other.mSpriteImage;
}

QgsVectorTileDataProvider::ProviderCapabilities QgsVtpkVectorTileDataProvider::providerCapabilities() const
Qgis::VectorTileProviderCapabilities QgsVtpkVectorTileDataProvider::providerCapabilities() const
{
return QgsVectorTileDataProvider::ProviderCapability::ReadLayerMetadata;
return Qgis::VectorTileProviderCapability::ReadLayerMetadata;
}

QString QgsVtpkVectorTileDataProvider::name() const
Expand Down
2 changes: 1 addition & 1 deletion src/core/vectortile/qgsvtpkvectortiledataprovider.h
Expand Up @@ -45,7 +45,7 @@ class CORE_EXPORT QgsVtpkVectorTileDataProvider : public QgsVectorTileDataProvid
*/
QgsVtpkVectorTileDataProvider &operator=( const QgsVtpkVectorTileDataProvider &other ) = delete;

QgsVectorTileDataProvider::ProviderCapabilities providerCapabilities() const override;
Qgis::VectorTileProviderCapabilities providerCapabilities() const override;
QString name() const override;
QString description() const override;
QgsVectorTileDataProvider *clone() const override;
Expand Down

0 comments on commit 12c261b

Please sign in to comment.