diff --git a/python/PyQt6/core/auto_additions/qgis.py b/python/PyQt6/core/auto_additions/qgis.py index 09d8bbe826a9..4d1de315bd17 100644 --- a/python/PyQt6/core/auto_additions/qgis.py +++ b/python/PyQt6/core/auto_additions/qgis.py @@ -402,6 +402,128 @@ Qgis.PythonMacroMode.__doc__ = "Authorisation to run Python Macros\n\n.. versionadded:: 3.10\n\n" + '* ``Never``: ' + Qgis.PythonMacroMode.Never.__doc__ + '\n' + '* ``Ask``: ' + Qgis.PythonMacroMode.Ask.__doc__ + '\n' + '* ``SessionOnly``: ' + Qgis.PythonMacroMode.SessionOnly.__doc__ + '\n' + '* ``Always``: ' + Qgis.PythonMacroMode.Always.__doc__ + '\n' + '* ``NotForThisSession``: ' + Qgis.PythonMacroMode.NotForThisSession.__doc__ # -- Qgis.PythonMacroMode.baseClass = Qgis +QgsDataProvider.ReadFlag = Qgis.DataProviderReadFlag +# monkey patching scoped based enum +QgsDataProvider.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource +QgsDataProvider.ReadFlag.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource +QgsDataProvider.FlagTrustDataSource.is_monkey_patched = True +QgsDataProvider.FlagTrustDataSource.__doc__ = "Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load. Since QGIS 3.16" +QgsDataProvider.SkipFeatureCount = Qgis.DataProviderReadFlag.SkipFeatureCount +QgsDataProvider.SkipFeatureCount.is_monkey_patched = True +QgsDataProvider.SkipFeatureCount.__doc__ = "Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing." +QgsDataProvider.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle +QgsDataProvider.ReadFlag.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle +QgsDataProvider.FlagLoadDefaultStyle.is_monkey_patched = True +QgsDataProvider.FlagLoadDefaultStyle.__doc__ = "Reset the layer's style to the default for the datasource" +QgsDataProvider.SkipGetExtent = Qgis.DataProviderReadFlag.SkipGetExtent +QgsDataProvider.SkipGetExtent.is_monkey_patched = True +QgsDataProvider.SkipGetExtent.__doc__ = "Skip the extent from provider" +QgsDataProvider.SkipFullScan = Qgis.DataProviderReadFlag.SkipFullScan +QgsDataProvider.SkipFullScan.is_monkey_patched = True +QgsDataProvider.SkipFullScan.__doc__ = "Skip expensive full scan on files (i.e. on delimited text) (since QGIS 3.24)" +QgsDataProvider.ForceReadOnly = Qgis.DataProviderReadFlag.ForceReadOnly +QgsDataProvider.ForceReadOnly.is_monkey_patched = True +QgsDataProvider.ForceReadOnly.__doc__ = "Open layer in a read-only mode (since QGIS 3.28)" +QgsDataProvider.SkipCredentialsRequest = Qgis.DataProviderReadFlag.SkipCredentialsRequest +QgsDataProvider.SkipCredentialsRequest.is_monkey_patched = True +QgsDataProvider.SkipCredentialsRequest.__doc__ = "Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread (since QGIS 3.32)." +QgsDataProvider.ParallelThreadLoading = Qgis.DataProviderReadFlag.ParallelThreadLoading +QgsDataProvider.ParallelThreadLoading.is_monkey_patched = True +QgsDataProvider.ParallelThreadLoading.__doc__ = "Provider is created in a parallel thread than the one where it will live (since QGIS 3.32.1)." +Qgis.DataProviderReadFlag.__doc__ = "Flags which control data provider construction.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsDataProvider`.ReadFlag\n\n.. versionadded:: 3.40\n\n" + '* ``FlagTrustDataSource``: ' + Qgis.DataProviderReadFlag.TrustDataSource.__doc__ + '\n' + '* ``SkipFeatureCount``: ' + Qgis.DataProviderReadFlag.SkipFeatureCount.__doc__ + '\n' + '* ``FlagLoadDefaultStyle``: ' + Qgis.DataProviderReadFlag.LoadDefaultStyle.__doc__ + '\n' + '* ``SkipGetExtent``: ' + Qgis.DataProviderReadFlag.SkipGetExtent.__doc__ + '\n' + '* ``SkipFullScan``: ' + Qgis.DataProviderReadFlag.SkipFullScan.__doc__ + '\n' + '* ``ForceReadOnly``: ' + Qgis.DataProviderReadFlag.ForceReadOnly.__doc__ + '\n' + '* ``SkipCredentialsRequest``: ' + Qgis.DataProviderReadFlag.SkipCredentialsRequest.__doc__ + '\n' + '* ``ParallelThreadLoading``: ' + Qgis.DataProviderReadFlag.ParallelThreadLoading.__doc__ +# -- +Qgis.DataProviderReadFlag.baseClass = Qgis +Qgis.DataProviderReadFlags = lambda flags=0: Qgis.DataProviderReadFlag(flags) +QgsDataProvider.ReadFlags = Qgis.DataProviderReadFlags +Qgis.DataProviderReadFlags.baseClass = Qgis +DataProviderReadFlags = Qgis # dirty hack since SIP seems to introduce the flags in module +QgsVectorDataProvider.Capability = Qgis.VectorProviderCapability +# monkey patching scoped based enum +QgsVectorDataProvider.NoCapabilities = Qgis.VectorProviderCapability.NoCapabilities +QgsVectorDataProvider.NoCapabilities.is_monkey_patched = True +QgsVectorDataProvider.NoCapabilities.__doc__ = "Provider has no capabilities" +QgsVectorDataProvider.AddFeatures = Qgis.VectorProviderCapability.AddFeatures +QgsVectorDataProvider.AddFeatures.is_monkey_patched = True +QgsVectorDataProvider.AddFeatures.__doc__ = "Allows adding features" +QgsVectorDataProvider.DeleteFeatures = Qgis.VectorProviderCapability.DeleteFeatures +QgsVectorDataProvider.DeleteFeatures.is_monkey_patched = True +QgsVectorDataProvider.DeleteFeatures.__doc__ = "Allows deletion of features" +QgsVectorDataProvider.ChangeAttributeValues = Qgis.VectorProviderCapability.ChangeAttributeValues +QgsVectorDataProvider.ChangeAttributeValues.is_monkey_patched = True +QgsVectorDataProvider.ChangeAttributeValues.__doc__ = "Allows modification of attribute values" +QgsVectorDataProvider.AddAttributes = Qgis.VectorProviderCapability.AddAttributes +QgsVectorDataProvider.AddAttributes.is_monkey_patched = True +QgsVectorDataProvider.AddAttributes.__doc__ = "Allows addition of new attributes (fields)" +QgsVectorDataProvider.DeleteAttributes = Qgis.VectorProviderCapability.DeleteAttributes +QgsVectorDataProvider.DeleteAttributes.is_monkey_patched = True +QgsVectorDataProvider.DeleteAttributes.__doc__ = "Allows deletion of attributes (fields)" +QgsVectorDataProvider.CreateSpatialIndex = Qgis.VectorProviderCapability.CreateSpatialIndex +QgsVectorDataProvider.CreateSpatialIndex.is_monkey_patched = True +QgsVectorDataProvider.CreateSpatialIndex.__doc__ = "Allows creation of spatial index" +QgsVectorDataProvider.SelectAtId = Qgis.VectorProviderCapability.SelectAtId +QgsVectorDataProvider.SelectAtId.is_monkey_patched = True +QgsVectorDataProvider.SelectAtId.__doc__ = "Fast access to features using their ID" +QgsVectorDataProvider.ChangeGeometries = Qgis.VectorProviderCapability.ChangeGeometries +QgsVectorDataProvider.ChangeGeometries.is_monkey_patched = True +QgsVectorDataProvider.ChangeGeometries.__doc__ = "Allows modifications of geometries" +QgsVectorDataProvider.SelectEncoding = Qgis.VectorProviderCapability.SelectEncoding +QgsVectorDataProvider.SelectEncoding.is_monkey_patched = True +QgsVectorDataProvider.SelectEncoding.__doc__ = "Allows user to select encoding" +QgsVectorDataProvider.CreateAttributeIndex = Qgis.VectorProviderCapability.CreateAttributeIndex +QgsVectorDataProvider.CreateAttributeIndex.is_monkey_patched = True +QgsVectorDataProvider.CreateAttributeIndex.__doc__ = "Can create indexes on provider's fields" +QgsVectorDataProvider.SimplifyGeometries = Qgis.VectorProviderCapability.SimplifyGeometries +QgsVectorDataProvider.SimplifyGeometries.is_monkey_patched = True +QgsVectorDataProvider.SimplifyGeometries.__doc__ = "Supports simplification of geometries on provider side according to a distance tolerance" +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation = Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.is_monkey_patched = True +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.__doc__ = "Supports topological simplification of geometries on provider side according to a distance tolerance" +QgsVectorDataProvider.TransactionSupport = Qgis.VectorProviderCapability.TransactionSupport +QgsVectorDataProvider.TransactionSupport.is_monkey_patched = True +QgsVectorDataProvider.TransactionSupport.__doc__ = "Supports transactions" +QgsVectorDataProvider.CircularGeometries = Qgis.VectorProviderCapability.CircularGeometries +QgsVectorDataProvider.CircularGeometries.is_monkey_patched = True +QgsVectorDataProvider.CircularGeometries.__doc__ = "Supports circular geometry types (circularstring, compoundcurve, curvepolygon)" +QgsVectorDataProvider.ChangeFeatures = Qgis.VectorProviderCapability.ChangeFeatures +QgsVectorDataProvider.ChangeFeatures.is_monkey_patched = True +QgsVectorDataProvider.ChangeFeatures.__doc__ = "Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues." +QgsVectorDataProvider.RenameAttributes = Qgis.VectorProviderCapability.RenameAttributes +QgsVectorDataProvider.RenameAttributes.is_monkey_patched = True +QgsVectorDataProvider.RenameAttributes.__doc__ = "Supports renaming attributes (fields). Since QGIS 2.16" +QgsVectorDataProvider.FastTruncate = Qgis.VectorProviderCapability.FastTruncate +QgsVectorDataProvider.FastTruncate.is_monkey_patched = True +QgsVectorDataProvider.FastTruncate.__doc__ = "Supports fast truncation of the layer (removing all features). Since QGIS 3.0" +QgsVectorDataProvider.ReadLayerMetadata = Qgis.VectorProviderCapability.ReadLayerMetadata +QgsVectorDataProvider.ReadLayerMetadata.is_monkey_patched = True +QgsVectorDataProvider.ReadLayerMetadata.__doc__ = "Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider.layerMetadata()" +QgsVectorDataProvider.WriteLayerMetadata = Qgis.VectorProviderCapability.WriteLayerMetadata +QgsVectorDataProvider.WriteLayerMetadata.is_monkey_patched = True +QgsVectorDataProvider.WriteLayerMetadata.__doc__ = "Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider.writeLayerMetadata()" +QgsVectorDataProvider.CancelSupport = Qgis.VectorProviderCapability.CancelSupport +QgsVectorDataProvider.CancelSupport.is_monkey_patched = True +QgsVectorDataProvider.CancelSupport.__doc__ = "Supports interruption of pending queries from a separated thread. Since QGIS 3.2" +QgsVectorDataProvider.CreateRenderer = Qgis.VectorProviderCapability.CreateRenderer +QgsVectorDataProvider.CreateRenderer.is_monkey_patched = True +QgsVectorDataProvider.CreateRenderer.__doc__ = "Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider.createRenderer()." +QgsVectorDataProvider.CreateLabeling = Qgis.VectorProviderCapability.CreateLabeling +QgsVectorDataProvider.CreateLabeling.is_monkey_patched = True +QgsVectorDataProvider.CreateLabeling.__doc__ = "Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider.createLabeling()." +QgsVectorDataProvider.ReloadData = Qgis.VectorProviderCapability.ReloadData +QgsVectorDataProvider.ReloadData.is_monkey_patched = True +QgsVectorDataProvider.ReloadData.__doc__ = "Provider is able to force reload data" +QgsVectorDataProvider.FeatureSymbology = Qgis.VectorProviderCapability.FeatureSymbology +QgsVectorDataProvider.FeatureSymbology.is_monkey_patched = True +QgsVectorDataProvider.FeatureSymbology.__doc__ = "Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3.20." +QgsVectorDataProvider.EditingCapabilities = Qgis.VectorProviderCapability.EditingCapabilities +QgsVectorDataProvider.EditingCapabilities.is_monkey_patched = True +QgsVectorDataProvider.EditingCapabilities.__doc__ = "Bitmask of all editing capabilities" +Qgis.VectorProviderCapability.__doc__ = "Vector data provider capabilities.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsVectorDataProvider`.Capability\n\n.. versionadded:: 3.40\n\n" + '* ``NoCapabilities``: ' + Qgis.VectorProviderCapability.NoCapabilities.__doc__ + '\n' + '* ``AddFeatures``: ' + Qgis.VectorProviderCapability.AddFeatures.__doc__ + '\n' + '* ``DeleteFeatures``: ' + Qgis.VectorProviderCapability.DeleteFeatures.__doc__ + '\n' + '* ``ChangeAttributeValues``: ' + Qgis.VectorProviderCapability.ChangeAttributeValues.__doc__ + '\n' + '* ``AddAttributes``: ' + Qgis.VectorProviderCapability.AddAttributes.__doc__ + '\n' + '* ``DeleteAttributes``: ' + Qgis.VectorProviderCapability.DeleteAttributes.__doc__ + '\n' + '* ``CreateSpatialIndex``: ' + Qgis.VectorProviderCapability.CreateSpatialIndex.__doc__ + '\n' + '* ``SelectAtId``: ' + Qgis.VectorProviderCapability.SelectAtId.__doc__ + '\n' + '* ``ChangeGeometries``: ' + Qgis.VectorProviderCapability.ChangeGeometries.__doc__ + '\n' + '* ``SelectEncoding``: ' + Qgis.VectorProviderCapability.SelectEncoding.__doc__ + '\n' + '* ``CreateAttributeIndex``: ' + Qgis.VectorProviderCapability.CreateAttributeIndex.__doc__ + '\n' + '* ``SimplifyGeometries``: ' + Qgis.VectorProviderCapability.SimplifyGeometries.__doc__ + '\n' + '* ``SimplifyGeometriesWithTopologicalValidation``: ' + Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation.__doc__ + '\n' + '* ``TransactionSupport``: ' + Qgis.VectorProviderCapability.TransactionSupport.__doc__ + '\n' + '* ``CircularGeometries``: ' + Qgis.VectorProviderCapability.CircularGeometries.__doc__ + '\n' + '* ``ChangeFeatures``: ' + Qgis.VectorProviderCapability.ChangeFeatures.__doc__ + '\n' + '* ``RenameAttributes``: ' + Qgis.VectorProviderCapability.RenameAttributes.__doc__ + '\n' + '* ``FastTruncate``: ' + Qgis.VectorProviderCapability.FastTruncate.__doc__ + '\n' + '* ``ReadLayerMetadata``: ' + Qgis.VectorProviderCapability.ReadLayerMetadata.__doc__ + '\n' + '* ``WriteLayerMetadata``: ' + Qgis.VectorProviderCapability.WriteLayerMetadata.__doc__ + '\n' + '* ``CancelSupport``: ' + Qgis.VectorProviderCapability.CancelSupport.__doc__ + '\n' + '* ``CreateRenderer``: ' + Qgis.VectorProviderCapability.CreateRenderer.__doc__ + '\n' + '* ``CreateLabeling``: ' + Qgis.VectorProviderCapability.CreateLabeling.__doc__ + '\n' + '* ``ReloadData``: ' + Qgis.VectorProviderCapability.ReloadData.__doc__ + '\n' + '* ``FeatureSymbology``: ' + Qgis.VectorProviderCapability.FeatureSymbology.__doc__ + '\n' + '* ``EditingCapabilities``: ' + Qgis.VectorProviderCapability.EditingCapabilities.__doc__ +# -- +Qgis.VectorProviderCapability.baseClass = Qgis +Qgis.VectorProviderCapabilities = lambda flags=0: Qgis.VectorProviderCapability(flags) +QgsVectorDataProvider.Capabilities = Qgis.VectorProviderCapabilities +Qgis.VectorProviderCapabilities.baseClass = Qgis +VectorProviderCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module QgsVectorDataProvider.FeatureCountState = Qgis.FeatureCountState # monkey patching scoped based enum QgsVectorDataProvider.Uncounted = Qgis.FeatureCountState.Uncounted diff --git a/python/PyQt6/core/auto_additions/qgsdataprovider.py b/python/PyQt6/core/auto_additions/qgsdataprovider.py index f309f6b3338d..ca600d397eb6 100644 --- a/python/PyQt6/core/auto_additions/qgsdataprovider.py +++ b/python/PyQt6/core/auto_additions/qgsdataprovider.py @@ -1,22 +1,3 @@ # The following has been generated automatically from src/core/providers/qgsdataprovider.h QgsDataProvider.EvaluateDefaultValues = QgsDataProvider.ProviderProperty.EvaluateDefaultValues QgsDataProvider.CustomData = QgsDataProvider.ProviderProperty.CustomData -QgsDataProvider.FlagTrustDataSource = QgsDataProvider.ReadFlag.FlagTrustDataSource -QgsDataProvider.SkipFeatureCount = QgsDataProvider.ReadFlag.SkipFeatureCount -QgsDataProvider.FlagLoadDefaultStyle = QgsDataProvider.ReadFlag.FlagLoadDefaultStyle -QgsDataProvider.SkipGetExtent = QgsDataProvider.ReadFlag.SkipGetExtent -QgsDataProvider.SkipFullScan = QgsDataProvider.ReadFlag.SkipFullScan -QgsDataProvider.ForceReadOnly = QgsDataProvider.ReadFlag.ForceReadOnly -QgsDataProvider.SkipCredentialsRequest = QgsDataProvider.ReadFlag.SkipCredentialsRequest -QgsDataProvider.ParallelThreadLoading = QgsDataProvider.ReadFlag.ParallelThreadLoading -QgsDataProvider.ReadFlags = lambda flags=0: QgsDataProvider.ReadFlag(flags) -from enum import Enum - - -def _force_int(v): return int(v.value) if isinstance(v, Enum) else v - - -QgsDataProvider.ReadFlag.__bool__ = lambda flag: bool(_force_int(flag)) -QgsDataProvider.ReadFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2) -QgsDataProvider.ReadFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2) -QgsDataProvider.ReadFlag.__or__ = lambda flag1, flag2: QgsDataProvider.ReadFlag(_force_int(flag1) | _force_int(flag2)) diff --git a/python/PyQt6/core/auto_additions/qgsvectordataprovider.py b/python/PyQt6/core/auto_additions/qgsvectordataprovider.py deleted file mode 100644 index 03119e39bf1e..000000000000 --- a/python/PyQt6/core/auto_additions/qgsvectordataprovider.py +++ /dev/null @@ -1,37 +0,0 @@ -# The following has been generated automatically from src/core/vector/qgsvectordataprovider.h -QgsVectorDataProvider.NoCapabilities = QgsVectorDataProvider.Capability.NoCapabilities -QgsVectorDataProvider.AddFeatures = QgsVectorDataProvider.Capability.AddFeatures -QgsVectorDataProvider.DeleteFeatures = QgsVectorDataProvider.Capability.DeleteFeatures -QgsVectorDataProvider.ChangeAttributeValues = QgsVectorDataProvider.Capability.ChangeAttributeValues -QgsVectorDataProvider.AddAttributes = QgsVectorDataProvider.Capability.AddAttributes -QgsVectorDataProvider.DeleteAttributes = QgsVectorDataProvider.Capability.DeleteAttributes -QgsVectorDataProvider.CreateSpatialIndex = QgsVectorDataProvider.Capability.CreateSpatialIndex -QgsVectorDataProvider.SelectAtId = QgsVectorDataProvider.Capability.SelectAtId -QgsVectorDataProvider.ChangeGeometries = QgsVectorDataProvider.Capability.ChangeGeometries -QgsVectorDataProvider.SelectEncoding = QgsVectorDataProvider.Capability.SelectEncoding -QgsVectorDataProvider.CreateAttributeIndex = QgsVectorDataProvider.Capability.CreateAttributeIndex -QgsVectorDataProvider.SimplifyGeometries = QgsVectorDataProvider.Capability.SimplifyGeometries -QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation = QgsVectorDataProvider.Capability.SimplifyGeometriesWithTopologicalValidation -QgsVectorDataProvider.TransactionSupport = QgsVectorDataProvider.Capability.TransactionSupport -QgsVectorDataProvider.CircularGeometries = QgsVectorDataProvider.Capability.CircularGeometries -QgsVectorDataProvider.ChangeFeatures = QgsVectorDataProvider.Capability.ChangeFeatures -QgsVectorDataProvider.RenameAttributes = QgsVectorDataProvider.Capability.RenameAttributes -QgsVectorDataProvider.FastTruncate = QgsVectorDataProvider.Capability.FastTruncate -QgsVectorDataProvider.ReadLayerMetadata = QgsVectorDataProvider.Capability.ReadLayerMetadata -QgsVectorDataProvider.WriteLayerMetadata = QgsVectorDataProvider.Capability.WriteLayerMetadata -QgsVectorDataProvider.CancelSupport = QgsVectorDataProvider.Capability.CancelSupport -QgsVectorDataProvider.CreateRenderer = QgsVectorDataProvider.Capability.CreateRenderer -QgsVectorDataProvider.CreateLabeling = QgsVectorDataProvider.Capability.CreateLabeling -QgsVectorDataProvider.ReloadData = QgsVectorDataProvider.Capability.ReloadData -QgsVectorDataProvider.FeatureSymbology = QgsVectorDataProvider.Capability.FeatureSymbology -QgsVectorDataProvider.Capabilities = lambda flags=0: QgsVectorDataProvider.Capability(flags) -from enum import Enum - - -def _force_int(v): return int(v.value) if isinstance(v, Enum) else v - - -QgsVectorDataProvider.Capability.__bool__ = lambda flag: bool(_force_int(flag)) -QgsVectorDataProvider.Capability.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2) -QgsVectorDataProvider.Capability.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2) -QgsVectorDataProvider.Capability.__or__ = lambda flag1, flag2: QgsVectorDataProvider.Capability(_force_int(flag1) | _force_int(flag2)) diff --git a/python/PyQt6/core/auto_generated/mesh/qgsmeshdataprovider.sip.in b/python/PyQt6/core/auto_generated/mesh/qgsmeshdataprovider.sip.in index c3a61e8255bc..b2bc7cf9bc8e 100644 --- a/python/PyQt6/core/auto_generated/mesh/qgsmeshdataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/mesh/qgsmeshdataprovider.sip.in @@ -436,7 +436,7 @@ Responsible for reading native mesh data public: QgsMeshDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags = Qgis::DataProviderReadFlags() ); %Docstring Ctor %End diff --git a/python/PyQt6/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in b/python/PyQt6/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in index c703823c1194..2747af20e6e9 100644 --- a/python/PyQt6/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in @@ -50,7 +50,7 @@ Responsible for reading native point cloud data and returning the indexed data. QgsPointCloudDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Ctor %End diff --git a/python/PyQt6/core/auto_generated/providers/qgsdataprovider.sip.in b/python/PyQt6/core/auto_generated/providers/qgsdataprovider.sip.in index 42274940d0fa..be69cf278de3 100644 --- a/python/PyQt6/core/auto_generated/providers/qgsdataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/providers/qgsdataprovider.sip.in @@ -57,23 +57,9 @@ Abstract base class for spatial data provider implementations. }; - enum ReadFlag /BaseType=IntEnum/ - { - FlagTrustDataSource, - SkipFeatureCount, - FlagLoadDefaultStyle, - SkipGetExtent, - SkipFullScan, - ForceReadOnly, - SkipCredentialsRequest, - ParallelThreadLoading, - }; - typedef QFlags ReadFlags; - - QgsDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Create a new dataprovider with the specified in the ``uri``. @@ -525,9 +511,6 @@ Sets error message }; -QFlags operator|(QgsDataProvider::ReadFlag f1, QFlags f2); - - /************************************************************************ * This file has been generated automatically from * * * diff --git a/python/PyQt6/core/auto_generated/providers/qgsprovidermetadata.sip.in b/python/PyQt6/core/auto_generated/providers/qgsprovidermetadata.sip.in index ea285dc66a5a..1efa70e8e2f9 100644 --- a/python/PyQt6/core/auto_generated/providers/qgsprovidermetadata.sip.in +++ b/python/PyQt6/core/auto_generated/providers/qgsprovidermetadata.sip.in @@ -400,7 +400,7 @@ The default implementation returns an empty string. virtual QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) /Factory/; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) /Factory/; %Docstring Class factory to return a pointer to a newly created :py:class:`QgsDataProvider` object diff --git a/python/PyQt6/core/auto_generated/providers/qgsproviderregistry.sip.in b/python/PyQt6/core/auto_generated/providers/qgsproviderregistry.sip.in index c3808e30cb08..336c915f5816 100644 --- a/python/PyQt6/core/auto_generated/providers/qgsproviderregistry.sip.in +++ b/python/PyQt6/core/auto_generated/providers/qgsproviderregistry.sip.in @@ -12,7 +12,6 @@ - class QgsProviderRegistry { %Docstring(signature="appended") @@ -82,7 +81,7 @@ Sets library directory where to search for plugins QgsDataProvider *createProvider( const QString &providerKey, const QString &dataSource, const QgsDataProvider::ProviderOptions &options = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) /TransferBack/; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) /TransferBack/; %Docstring Creates a new instance of a provider. diff --git a/python/PyQt6/core/auto_generated/qgis.sip.in b/python/PyQt6/core/auto_generated/qgis.sip.in index 0cc64ab3cab9..d6d9b35308f9 100644 --- a/python/PyQt6/core/auto_generated/qgis.sip.in +++ b/python/PyQt6/core/auto_generated/qgis.sip.in @@ -233,6 +233,55 @@ The development version NotForThisSession, }; + enum class DataProviderReadFlag /BaseType=IntFlag/ + { + TrustDataSource, + SkipFeatureCount, + LoadDefaultStyle, + SkipGetExtent, + SkipFullScan, + ForceReadOnly, + SkipCredentialsRequest, + ParallelThreadLoading, + }; + + typedef QFlags DataProviderReadFlags; + + + + enum class VectorProviderCapability /BaseType=IntFlag/ + { + NoCapabilities, + AddFeatures, + DeleteFeatures, + ChangeAttributeValues, + AddAttributes, + DeleteAttributes, + CreateSpatialIndex, + SelectAtId, + ChangeGeometries, + SelectEncoding, + CreateAttributeIndex, + SimplifyGeometries, + SimplifyGeometriesWithTopologicalValidation, + TransactionSupport, + CircularGeometries, + ChangeFeatures, + RenameAttributes, + FastTruncate, + ReadLayerMetadata, + WriteLayerMetadata, + CancelSupport, + CreateRenderer, + CreateLabeling, + ReloadData, + FeatureSymbology, + EditingCapabilities, + }; + + typedef QFlags VectorProviderCapabilities; + + enum class FeatureCountState /BaseType=IntEnum/ { Uncounted, @@ -3145,6 +3194,10 @@ QFlags operator|(Qgis::DataItemProviderCapabil QFlags operator|(Qgis::VectorRenderingSimplificationFlag f1, QFlags f2); +QFlags operator|(Qgis::DataProviderReadFlag f1, QFlags f2); + +QFlags operator|(Qgis::VectorProviderCapability f1, QFlags f2); + diff --git a/python/PyQt6/core/auto_generated/qgsmaplayer.sip.in b/python/PyQt6/core/auto_generated/qgsmaplayer.sip.in index c3a92256d4db..6f8d6f22a895 100644 --- a/python/PyQt6/core/auto_generated/qgsmaplayer.sip.in +++ b/python/PyQt6/core/auto_generated/qgsmaplayer.sip.in @@ -1373,7 +1373,7 @@ be retrieved by calling :py:func:`~QgsMapLayer.error`. .. versionadded:: 3.6 %End - void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ); + void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ); %Docstring Updates the data source of the layer. @@ -1771,7 +1771,7 @@ Returns true if map tips are enabled for this layer .. versionadded:: 3.32 %End - static QgsDataProvider::ReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); + static Qgis::DataProviderReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); %Docstring Returns provider read flag deduced from layer read flags ``layerReadFlags`` and a dom node ``layerNode`` that describes a layer (corresponding to ``maplayer'' tag in a DOM document project file read by :py:class:`QgsProject`). diff --git a/python/PyQt6/core/auto_generated/raster/qgsrasterdataprovider.sip.in b/python/PyQt6/core/auto_generated/raster/qgsrasterdataprovider.sip.in index d67e9d25d230..c7e332d1d06a 100644 --- a/python/PyQt6/core/auto_generated/raster/qgsrasterdataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/raster/qgsrasterdataprovider.sip.in @@ -72,7 +72,7 @@ Base class for raster data providers. QgsRasterDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for QgsRasterDataProvider. diff --git a/python/PyQt6/core/auto_generated/raster/qgsrasterlayer.sip.in b/python/PyQt6/core/auto_generated/raster/qgsrasterlayer.sip.in index 55fc0c569d4c..702bc2348477 100644 --- a/python/PyQt6/core/auto_generated/raster/qgsrasterlayer.sip.in +++ b/python/PyQt6/core/auto_generated/raster/qgsrasterlayer.sip.in @@ -132,7 +132,7 @@ Set the data provider. Use the version with ProviderOptions instead. %End - void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Set the data provider. diff --git a/python/PyQt6/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in b/python/PyQt6/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in index f25edf17c7b6..3bc86655a110 100644 --- a/python/PyQt6/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in @@ -26,7 +26,7 @@ Base class for data providers for :py:class:`QgsTiledSceneLayer` QgsTiledSceneDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for QgsTiledSceneDataProvider %End diff --git a/python/PyQt6/core/auto_generated/vector/qgsvectordataprovider.sip.in b/python/PyQt6/core/auto_generated/vector/qgsvectordataprovider.sip.in index ab66ef5277b6..62bbf3794482 100644 --- a/python/PyQt6/core/auto_generated/vector/qgsvectordataprovider.sip.in +++ b/python/PyQt6/core/auto_generated/vector/qgsvectordataprovider.sip.in @@ -27,44 +27,11 @@ of feature and attribute information from a spatial datasource. %End public: - - enum Capability /BaseType=IntEnum/ - { - NoCapabilities, - AddFeatures, - DeleteFeatures, - ChangeAttributeValues, - AddAttributes, - DeleteAttributes, - CreateSpatialIndex, - SelectAtId, - ChangeGeometries, - SelectEncoding, - CreateAttributeIndex, - SimplifyGeometries, - SimplifyGeometriesWithTopologicalValidation, - TransactionSupport, - CircularGeometries, - ChangeFeatures, - RenameAttributes, - FastTruncate, - ReadLayerMetadata, - WriteLayerMetadata, - CancelSupport, - CreateRenderer, - CreateLabeling, - ReloadData, - FeatureSymbology, - }; - - typedef QFlags Capabilities; - - static const int EditingCapabilities; QgsVectorDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for a vector data provider. @@ -406,7 +373,7 @@ Creates a spatial index on the datasource (if supported by the provider type). Create an attribute index on the datasource %End - virtual QgsVectorDataProvider::Capabilities capabilities() const; + virtual Qgis::VectorProviderCapabilities capabilities() const; %Docstring Returns flags containing the supported capabilities \note, some capabilities may change depending on whether @@ -714,9 +681,6 @@ Converts the ``geometry`` to the provider geometry type ``providerGeometryType`` }; -QFlags operator|(QgsVectorDataProvider::Capability f1, QFlags f2); - - /************************************************************************ * This file has been generated automatically from * * * diff --git a/python/core/auto_additions/qgis.py b/python/core/auto_additions/qgis.py index 4343887dd9e1..0c77e0c4ca8c 100644 --- a/python/core/auto_additions/qgis.py +++ b/python/core/auto_additions/qgis.py @@ -394,6 +394,126 @@ Qgis.PythonMacroMode.__doc__ = "Authorisation to run Python Macros\n\n.. versionadded:: 3.10\n\n" + '* ``Never``: ' + Qgis.PythonMacroMode.Never.__doc__ + '\n' + '* ``Ask``: ' + Qgis.PythonMacroMode.Ask.__doc__ + '\n' + '* ``SessionOnly``: ' + Qgis.PythonMacroMode.SessionOnly.__doc__ + '\n' + '* ``Always``: ' + Qgis.PythonMacroMode.Always.__doc__ + '\n' + '* ``NotForThisSession``: ' + Qgis.PythonMacroMode.NotForThisSession.__doc__ # -- Qgis.PythonMacroMode.baseClass = Qgis +QgsDataProvider.ReadFlag = Qgis.DataProviderReadFlag +# monkey patching scoped based enum +QgsDataProvider.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource +QgsDataProvider.ReadFlag.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource +QgsDataProvider.FlagTrustDataSource.is_monkey_patched = True +QgsDataProvider.FlagTrustDataSource.__doc__ = "Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load. Since QGIS 3.16" +QgsDataProvider.SkipFeatureCount = Qgis.DataProviderReadFlag.SkipFeatureCount +QgsDataProvider.SkipFeatureCount.is_monkey_patched = True +QgsDataProvider.SkipFeatureCount.__doc__ = "Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing." +QgsDataProvider.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle +QgsDataProvider.ReadFlag.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle +QgsDataProvider.FlagLoadDefaultStyle.is_monkey_patched = True +QgsDataProvider.FlagLoadDefaultStyle.__doc__ = "Reset the layer's style to the default for the datasource" +QgsDataProvider.SkipGetExtent = Qgis.DataProviderReadFlag.SkipGetExtent +QgsDataProvider.SkipGetExtent.is_monkey_patched = True +QgsDataProvider.SkipGetExtent.__doc__ = "Skip the extent from provider" +QgsDataProvider.SkipFullScan = Qgis.DataProviderReadFlag.SkipFullScan +QgsDataProvider.SkipFullScan.is_monkey_patched = True +QgsDataProvider.SkipFullScan.__doc__ = "Skip expensive full scan on files (i.e. on delimited text) (since QGIS 3.24)" +QgsDataProvider.ForceReadOnly = Qgis.DataProviderReadFlag.ForceReadOnly +QgsDataProvider.ForceReadOnly.is_monkey_patched = True +QgsDataProvider.ForceReadOnly.__doc__ = "Open layer in a read-only mode (since QGIS 3.28)" +QgsDataProvider.SkipCredentialsRequest = Qgis.DataProviderReadFlag.SkipCredentialsRequest +QgsDataProvider.SkipCredentialsRequest.is_monkey_patched = True +QgsDataProvider.SkipCredentialsRequest.__doc__ = "Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread (since QGIS 3.32)." +QgsDataProvider.ParallelThreadLoading = Qgis.DataProviderReadFlag.ParallelThreadLoading +QgsDataProvider.ParallelThreadLoading.is_monkey_patched = True +QgsDataProvider.ParallelThreadLoading.__doc__ = "Provider is created in a parallel thread than the one where it will live (since QGIS 3.32.1)." +Qgis.DataProviderReadFlag.__doc__ = "Flags which control data provider construction.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsDataProvider`.ReadFlag\n\n.. versionadded:: 3.40\n\n" + '* ``FlagTrustDataSource``: ' + Qgis.DataProviderReadFlag.TrustDataSource.__doc__ + '\n' + '* ``SkipFeatureCount``: ' + Qgis.DataProviderReadFlag.SkipFeatureCount.__doc__ + '\n' + '* ``FlagLoadDefaultStyle``: ' + Qgis.DataProviderReadFlag.LoadDefaultStyle.__doc__ + '\n' + '* ``SkipGetExtent``: ' + Qgis.DataProviderReadFlag.SkipGetExtent.__doc__ + '\n' + '* ``SkipFullScan``: ' + Qgis.DataProviderReadFlag.SkipFullScan.__doc__ + '\n' + '* ``ForceReadOnly``: ' + Qgis.DataProviderReadFlag.ForceReadOnly.__doc__ + '\n' + '* ``SkipCredentialsRequest``: ' + Qgis.DataProviderReadFlag.SkipCredentialsRequest.__doc__ + '\n' + '* ``ParallelThreadLoading``: ' + Qgis.DataProviderReadFlag.ParallelThreadLoading.__doc__ +# -- +Qgis.DataProviderReadFlag.baseClass = Qgis +QgsDataProvider.ReadFlags = Qgis.DataProviderReadFlags +Qgis.DataProviderReadFlags.baseClass = Qgis +DataProviderReadFlags = Qgis # dirty hack since SIP seems to introduce the flags in module +QgsVectorDataProvider.Capability = Qgis.VectorProviderCapability +# monkey patching scoped based enum +QgsVectorDataProvider.NoCapabilities = Qgis.VectorProviderCapability.NoCapabilities +QgsVectorDataProvider.NoCapabilities.is_monkey_patched = True +QgsVectorDataProvider.NoCapabilities.__doc__ = "Provider has no capabilities" +QgsVectorDataProvider.AddFeatures = Qgis.VectorProviderCapability.AddFeatures +QgsVectorDataProvider.AddFeatures.is_monkey_patched = True +QgsVectorDataProvider.AddFeatures.__doc__ = "Allows adding features" +QgsVectorDataProvider.DeleteFeatures = Qgis.VectorProviderCapability.DeleteFeatures +QgsVectorDataProvider.DeleteFeatures.is_monkey_patched = True +QgsVectorDataProvider.DeleteFeatures.__doc__ = "Allows deletion of features" +QgsVectorDataProvider.ChangeAttributeValues = Qgis.VectorProviderCapability.ChangeAttributeValues +QgsVectorDataProvider.ChangeAttributeValues.is_monkey_patched = True +QgsVectorDataProvider.ChangeAttributeValues.__doc__ = "Allows modification of attribute values" +QgsVectorDataProvider.AddAttributes = Qgis.VectorProviderCapability.AddAttributes +QgsVectorDataProvider.AddAttributes.is_monkey_patched = True +QgsVectorDataProvider.AddAttributes.__doc__ = "Allows addition of new attributes (fields)" +QgsVectorDataProvider.DeleteAttributes = Qgis.VectorProviderCapability.DeleteAttributes +QgsVectorDataProvider.DeleteAttributes.is_monkey_patched = True +QgsVectorDataProvider.DeleteAttributes.__doc__ = "Allows deletion of attributes (fields)" +QgsVectorDataProvider.CreateSpatialIndex = Qgis.VectorProviderCapability.CreateSpatialIndex +QgsVectorDataProvider.CreateSpatialIndex.is_monkey_patched = True +QgsVectorDataProvider.CreateSpatialIndex.__doc__ = "Allows creation of spatial index" +QgsVectorDataProvider.SelectAtId = Qgis.VectorProviderCapability.SelectAtId +QgsVectorDataProvider.SelectAtId.is_monkey_patched = True +QgsVectorDataProvider.SelectAtId.__doc__ = "Fast access to features using their ID" +QgsVectorDataProvider.ChangeGeometries = Qgis.VectorProviderCapability.ChangeGeometries +QgsVectorDataProvider.ChangeGeometries.is_monkey_patched = True +QgsVectorDataProvider.ChangeGeometries.__doc__ = "Allows modifications of geometries" +QgsVectorDataProvider.SelectEncoding = Qgis.VectorProviderCapability.SelectEncoding +QgsVectorDataProvider.SelectEncoding.is_monkey_patched = True +QgsVectorDataProvider.SelectEncoding.__doc__ = "Allows user to select encoding" +QgsVectorDataProvider.CreateAttributeIndex = Qgis.VectorProviderCapability.CreateAttributeIndex +QgsVectorDataProvider.CreateAttributeIndex.is_monkey_patched = True +QgsVectorDataProvider.CreateAttributeIndex.__doc__ = "Can create indexes on provider's fields" +QgsVectorDataProvider.SimplifyGeometries = Qgis.VectorProviderCapability.SimplifyGeometries +QgsVectorDataProvider.SimplifyGeometries.is_monkey_patched = True +QgsVectorDataProvider.SimplifyGeometries.__doc__ = "Supports simplification of geometries on provider side according to a distance tolerance" +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation = Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.is_monkey_patched = True +QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.__doc__ = "Supports topological simplification of geometries on provider side according to a distance tolerance" +QgsVectorDataProvider.TransactionSupport = Qgis.VectorProviderCapability.TransactionSupport +QgsVectorDataProvider.TransactionSupport.is_monkey_patched = True +QgsVectorDataProvider.TransactionSupport.__doc__ = "Supports transactions" +QgsVectorDataProvider.CircularGeometries = Qgis.VectorProviderCapability.CircularGeometries +QgsVectorDataProvider.CircularGeometries.is_monkey_patched = True +QgsVectorDataProvider.CircularGeometries.__doc__ = "Supports circular geometry types (circularstring, compoundcurve, curvepolygon)" +QgsVectorDataProvider.ChangeFeatures = Qgis.VectorProviderCapability.ChangeFeatures +QgsVectorDataProvider.ChangeFeatures.is_monkey_patched = True +QgsVectorDataProvider.ChangeFeatures.__doc__ = "Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues." +QgsVectorDataProvider.RenameAttributes = Qgis.VectorProviderCapability.RenameAttributes +QgsVectorDataProvider.RenameAttributes.is_monkey_patched = True +QgsVectorDataProvider.RenameAttributes.__doc__ = "Supports renaming attributes (fields). Since QGIS 2.16" +QgsVectorDataProvider.FastTruncate = Qgis.VectorProviderCapability.FastTruncate +QgsVectorDataProvider.FastTruncate.is_monkey_patched = True +QgsVectorDataProvider.FastTruncate.__doc__ = "Supports fast truncation of the layer (removing all features). Since QGIS 3.0" +QgsVectorDataProvider.ReadLayerMetadata = Qgis.VectorProviderCapability.ReadLayerMetadata +QgsVectorDataProvider.ReadLayerMetadata.is_monkey_patched = True +QgsVectorDataProvider.ReadLayerMetadata.__doc__ = "Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider.layerMetadata()" +QgsVectorDataProvider.WriteLayerMetadata = Qgis.VectorProviderCapability.WriteLayerMetadata +QgsVectorDataProvider.WriteLayerMetadata.is_monkey_patched = True +QgsVectorDataProvider.WriteLayerMetadata.__doc__ = "Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider.writeLayerMetadata()" +QgsVectorDataProvider.CancelSupport = Qgis.VectorProviderCapability.CancelSupport +QgsVectorDataProvider.CancelSupport.is_monkey_patched = True +QgsVectorDataProvider.CancelSupport.__doc__ = "Supports interruption of pending queries from a separated thread. Since QGIS 3.2" +QgsVectorDataProvider.CreateRenderer = Qgis.VectorProviderCapability.CreateRenderer +QgsVectorDataProvider.CreateRenderer.is_monkey_patched = True +QgsVectorDataProvider.CreateRenderer.__doc__ = "Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider.createRenderer()." +QgsVectorDataProvider.CreateLabeling = Qgis.VectorProviderCapability.CreateLabeling +QgsVectorDataProvider.CreateLabeling.is_monkey_patched = True +QgsVectorDataProvider.CreateLabeling.__doc__ = "Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider.createLabeling()." +QgsVectorDataProvider.ReloadData = Qgis.VectorProviderCapability.ReloadData +QgsVectorDataProvider.ReloadData.is_monkey_patched = True +QgsVectorDataProvider.ReloadData.__doc__ = "Provider is able to force reload data" +QgsVectorDataProvider.FeatureSymbology = Qgis.VectorProviderCapability.FeatureSymbology +QgsVectorDataProvider.FeatureSymbology.is_monkey_patched = True +QgsVectorDataProvider.FeatureSymbology.__doc__ = "Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3.20." +QgsVectorDataProvider.EditingCapabilities = Qgis.VectorProviderCapability.EditingCapabilities +QgsVectorDataProvider.EditingCapabilities.is_monkey_patched = True +QgsVectorDataProvider.EditingCapabilities.__doc__ = "Bitmask of all editing capabilities" +Qgis.VectorProviderCapability.__doc__ = "Vector data provider capabilities.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsVectorDataProvider`.Capability\n\n.. versionadded:: 3.40\n\n" + '* ``NoCapabilities``: ' + Qgis.VectorProviderCapability.NoCapabilities.__doc__ + '\n' + '* ``AddFeatures``: ' + Qgis.VectorProviderCapability.AddFeatures.__doc__ + '\n' + '* ``DeleteFeatures``: ' + Qgis.VectorProviderCapability.DeleteFeatures.__doc__ + '\n' + '* ``ChangeAttributeValues``: ' + Qgis.VectorProviderCapability.ChangeAttributeValues.__doc__ + '\n' + '* ``AddAttributes``: ' + Qgis.VectorProviderCapability.AddAttributes.__doc__ + '\n' + '* ``DeleteAttributes``: ' + Qgis.VectorProviderCapability.DeleteAttributes.__doc__ + '\n' + '* ``CreateSpatialIndex``: ' + Qgis.VectorProviderCapability.CreateSpatialIndex.__doc__ + '\n' + '* ``SelectAtId``: ' + Qgis.VectorProviderCapability.SelectAtId.__doc__ + '\n' + '* ``ChangeGeometries``: ' + Qgis.VectorProviderCapability.ChangeGeometries.__doc__ + '\n' + '* ``SelectEncoding``: ' + Qgis.VectorProviderCapability.SelectEncoding.__doc__ + '\n' + '* ``CreateAttributeIndex``: ' + Qgis.VectorProviderCapability.CreateAttributeIndex.__doc__ + '\n' + '* ``SimplifyGeometries``: ' + Qgis.VectorProviderCapability.SimplifyGeometries.__doc__ + '\n' + '* ``SimplifyGeometriesWithTopologicalValidation``: ' + Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation.__doc__ + '\n' + '* ``TransactionSupport``: ' + Qgis.VectorProviderCapability.TransactionSupport.__doc__ + '\n' + '* ``CircularGeometries``: ' + Qgis.VectorProviderCapability.CircularGeometries.__doc__ + '\n' + '* ``ChangeFeatures``: ' + Qgis.VectorProviderCapability.ChangeFeatures.__doc__ + '\n' + '* ``RenameAttributes``: ' + Qgis.VectorProviderCapability.RenameAttributes.__doc__ + '\n' + '* ``FastTruncate``: ' + Qgis.VectorProviderCapability.FastTruncate.__doc__ + '\n' + '* ``ReadLayerMetadata``: ' + Qgis.VectorProviderCapability.ReadLayerMetadata.__doc__ + '\n' + '* ``WriteLayerMetadata``: ' + Qgis.VectorProviderCapability.WriteLayerMetadata.__doc__ + '\n' + '* ``CancelSupport``: ' + Qgis.VectorProviderCapability.CancelSupport.__doc__ + '\n' + '* ``CreateRenderer``: ' + Qgis.VectorProviderCapability.CreateRenderer.__doc__ + '\n' + '* ``CreateLabeling``: ' + Qgis.VectorProviderCapability.CreateLabeling.__doc__ + '\n' + '* ``ReloadData``: ' + Qgis.VectorProviderCapability.ReloadData.__doc__ + '\n' + '* ``FeatureSymbology``: ' + Qgis.VectorProviderCapability.FeatureSymbology.__doc__ + '\n' + '* ``EditingCapabilities``: ' + Qgis.VectorProviderCapability.EditingCapabilities.__doc__ +# -- +Qgis.VectorProviderCapability.baseClass = Qgis +QgsVectorDataProvider.Capabilities = Qgis.VectorProviderCapabilities +Qgis.VectorProviderCapabilities.baseClass = Qgis +VectorProviderCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module QgsVectorDataProvider.FeatureCountState = Qgis.FeatureCountState # monkey patching scoped based enum QgsVectorDataProvider.Uncounted = Qgis.FeatureCountState.Uncounted @@ -5180,3 +5300,5 @@ def _force_int(v): return int(v.value) if isinstance(v, Enum) else v Qgis.ProcessingParameterFlag.__or__ = lambda flag1, flag2: Qgis.ProcessingParameterFlags(_force_int(flag1) | _force_int(flag2)) Qgis.DataItemProviderCapability.__or__ = lambda flag1, flag2: Qgis.DataItemProviderCapabilities(_force_int(flag1) | _force_int(flag2)) Qgis.VectorRenderingSimplificationFlag.__or__ = lambda flag1, flag2: Qgis.VectorRenderingSimplificationFlags(_force_int(flag1) | _force_int(flag2)) +Qgis.DataProviderReadFlag.__or__ = lambda flag1, flag2: Qgis.DataProviderReadFlags(_force_int(flag1) | _force_int(flag2)) +Qgis.VectorProviderCapability.__or__ = lambda flag1, flag2: Qgis.VectorProviderCapabilities(_force_int(flag1) | _force_int(flag2)) diff --git a/python/core/auto_generated/mesh/qgsmeshdataprovider.sip.in b/python/core/auto_generated/mesh/qgsmeshdataprovider.sip.in index 5eafaf5f8cd0..d12b2a2413e3 100644 --- a/python/core/auto_generated/mesh/qgsmeshdataprovider.sip.in +++ b/python/core/auto_generated/mesh/qgsmeshdataprovider.sip.in @@ -436,7 +436,7 @@ Responsible for reading native mesh data public: QgsMeshDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags = Qgis::DataProviderReadFlags() ); %Docstring Ctor %End diff --git a/python/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in b/python/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in index 796d866ea798..d50d949f2a5f 100644 --- a/python/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in +++ b/python/core/auto_generated/pointcloud/qgspointclouddataprovider.sip.in @@ -50,7 +50,7 @@ Responsible for reading native point cloud data and returning the indexed data. QgsPointCloudDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Ctor %End diff --git a/python/core/auto_generated/providers/qgsdataprovider.sip.in b/python/core/auto_generated/providers/qgsdataprovider.sip.in index a8ca352bf04a..6be819b8c7eb 100644 --- a/python/core/auto_generated/providers/qgsdataprovider.sip.in +++ b/python/core/auto_generated/providers/qgsdataprovider.sip.in @@ -57,23 +57,9 @@ Abstract base class for spatial data provider implementations. }; - enum ReadFlag - { - FlagTrustDataSource, - SkipFeatureCount, - FlagLoadDefaultStyle, - SkipGetExtent, - SkipFullScan, - ForceReadOnly, - SkipCredentialsRequest, - ParallelThreadLoading, - }; - typedef QFlags ReadFlags; - - QgsDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Create a new dataprovider with the specified in the ``uri``. @@ -525,9 +511,6 @@ Sets error message }; -QFlags operator|(QgsDataProvider::ReadFlag f1, QFlags f2); - - /************************************************************************ * This file has been generated automatically from * * * diff --git a/python/core/auto_generated/providers/qgsprovidermetadata.sip.in b/python/core/auto_generated/providers/qgsprovidermetadata.sip.in index 27d89ec6c783..1077769a0e90 100644 --- a/python/core/auto_generated/providers/qgsprovidermetadata.sip.in +++ b/python/core/auto_generated/providers/qgsprovidermetadata.sip.in @@ -400,7 +400,7 @@ The default implementation returns an empty string. virtual QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) /Factory/; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) /Factory/; %Docstring Class factory to return a pointer to a newly created :py:class:`QgsDataProvider` object diff --git a/python/core/auto_generated/providers/qgsproviderregistry.sip.in b/python/core/auto_generated/providers/qgsproviderregistry.sip.in index bdd6a0108f28..596ae65dc7f5 100644 --- a/python/core/auto_generated/providers/qgsproviderregistry.sip.in +++ b/python/core/auto_generated/providers/qgsproviderregistry.sip.in @@ -12,7 +12,6 @@ - class QgsProviderRegistry { %Docstring(signature="appended") @@ -82,7 +81,7 @@ Sets library directory where to search for plugins QgsDataProvider *createProvider( const QString &providerKey, const QString &dataSource, const QgsDataProvider::ProviderOptions &options = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) /TransferBack/; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) /TransferBack/; %Docstring Creates a new instance of a provider. diff --git a/python/core/auto_generated/qgis.sip.in b/python/core/auto_generated/qgis.sip.in index 9251b837e157..2ee5117e2d4f 100644 --- a/python/core/auto_generated/qgis.sip.in +++ b/python/core/auto_generated/qgis.sip.in @@ -233,6 +233,55 @@ The development version NotForThisSession, }; + enum class DataProviderReadFlag + { + TrustDataSource, + SkipFeatureCount, + LoadDefaultStyle, + SkipGetExtent, + SkipFullScan, + ForceReadOnly, + SkipCredentialsRequest, + ParallelThreadLoading, + }; + + typedef QFlags DataProviderReadFlags; + + + + enum class VectorProviderCapability + { + NoCapabilities, + AddFeatures, + DeleteFeatures, + ChangeAttributeValues, + AddAttributes, + DeleteAttributes, + CreateSpatialIndex, + SelectAtId, + ChangeGeometries, + SelectEncoding, + CreateAttributeIndex, + SimplifyGeometries, + SimplifyGeometriesWithTopologicalValidation, + TransactionSupport, + CircularGeometries, + ChangeFeatures, + RenameAttributes, + FastTruncate, + ReadLayerMetadata, + WriteLayerMetadata, + CancelSupport, + CreateRenderer, + CreateLabeling, + ReloadData, + FeatureSymbology, + EditingCapabilities, + }; + + typedef QFlags VectorProviderCapabilities; + + enum class FeatureCountState { Uncounted, @@ -3145,6 +3194,10 @@ QFlags operator|(Qgis::DataItemProviderCapabil QFlags operator|(Qgis::VectorRenderingSimplificationFlag f1, QFlags f2); +QFlags operator|(Qgis::DataProviderReadFlag f1, QFlags f2); + +QFlags operator|(Qgis::VectorProviderCapability f1, QFlags f2); + diff --git a/python/core/auto_generated/qgsmaplayer.sip.in b/python/core/auto_generated/qgsmaplayer.sip.in index 9a9bbc354616..a7bfa528d4aa 100644 --- a/python/core/auto_generated/qgsmaplayer.sip.in +++ b/python/core/auto_generated/qgsmaplayer.sip.in @@ -1373,7 +1373,7 @@ be retrieved by calling :py:func:`~QgsMapLayer.error`. .. versionadded:: 3.6 %End - void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ); + void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ); %Docstring Updates the data source of the layer. @@ -1771,7 +1771,7 @@ Returns true if map tips are enabled for this layer .. versionadded:: 3.32 %End - static QgsDataProvider::ReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); + static Qgis::DataProviderReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); %Docstring Returns provider read flag deduced from layer read flags ``layerReadFlags`` and a dom node ``layerNode`` that describes a layer (corresponding to ``maplayer'' tag in a DOM document project file read by :py:class:`QgsProject`). diff --git a/python/core/auto_generated/raster/qgsrasterdataprovider.sip.in b/python/core/auto_generated/raster/qgsrasterdataprovider.sip.in index a1f265561925..cbfc2b39d246 100644 --- a/python/core/auto_generated/raster/qgsrasterdataprovider.sip.in +++ b/python/core/auto_generated/raster/qgsrasterdataprovider.sip.in @@ -72,7 +72,7 @@ Base class for raster data providers. QgsRasterDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for QgsRasterDataProvider. diff --git a/python/core/auto_generated/raster/qgsrasterlayer.sip.in b/python/core/auto_generated/raster/qgsrasterlayer.sip.in index 55fc0c569d4c..702bc2348477 100644 --- a/python/core/auto_generated/raster/qgsrasterlayer.sip.in +++ b/python/core/auto_generated/raster/qgsrasterlayer.sip.in @@ -132,7 +132,7 @@ Set the data provider. Use the version with ProviderOptions instead. %End - void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Set the data provider. diff --git a/python/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in b/python/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in index f25edf17c7b6..3bc86655a110 100644 --- a/python/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in +++ b/python/core/auto_generated/tiledscene/qgstiledscenedataprovider.sip.in @@ -26,7 +26,7 @@ Base class for data providers for :py:class:`QgsTiledSceneLayer` QgsTiledSceneDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for QgsTiledSceneDataProvider %End diff --git a/python/core/auto_generated/vector/qgsvectordataprovider.sip.in b/python/core/auto_generated/vector/qgsvectordataprovider.sip.in index c13432fd05c3..0bdf4d50ef3a 100644 --- a/python/core/auto_generated/vector/qgsvectordataprovider.sip.in +++ b/python/core/auto_generated/vector/qgsvectordataprovider.sip.in @@ -27,44 +27,11 @@ of feature and attribute information from a spatial datasource. %End public: - - enum Capability - { - NoCapabilities, - AddFeatures, - DeleteFeatures, - ChangeAttributeValues, - AddAttributes, - DeleteAttributes, - CreateSpatialIndex, - SelectAtId, - ChangeGeometries, - SelectEncoding, - CreateAttributeIndex, - SimplifyGeometries, - SimplifyGeometriesWithTopologicalValidation, - TransactionSupport, - CircularGeometries, - ChangeFeatures, - RenameAttributes, - FastTruncate, - ReadLayerMetadata, - WriteLayerMetadata, - CancelSupport, - CreateRenderer, - CreateLabeling, - ReloadData, - FeatureSymbology, - }; - - typedef QFlags Capabilities; - - static const int EditingCapabilities; QgsVectorDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); %Docstring Constructor for a vector data provider. @@ -406,7 +373,7 @@ Creates a spatial index on the datasource (if supported by the provider type). Create an attribute index on the datasource %End - virtual QgsVectorDataProvider::Capabilities capabilities() const; + virtual Qgis::VectorProviderCapabilities capabilities() const; %Docstring Returns flags containing the supported capabilities \note, some capabilities may change depending on whether @@ -719,9 +686,6 @@ Converts the ``geometry`` to the provider geometry type ``providerGeometryType`` }; -QFlags operator|(QgsVectorDataProvider::Capability f1, QFlags f2); - - /************************************************************************ * This file has been generated automatically from * * * diff --git a/src/analysis/processing/qgsalgorithmattributeindex.cpp b/src/analysis/processing/qgsalgorithmattributeindex.cpp index 3e494c5028bc..51e4b23f36aa 100644 --- a/src/analysis/processing/qgsalgorithmattributeindex.cpp +++ b/src/analysis/processing/qgsalgorithmattributeindex.cpp @@ -91,7 +91,7 @@ QVariantMap QgsAttributeIndexAlgorithm::processAlgorithm( const QVariantMap &par else { const int providerIndex = layer->fields().fieldOriginIndex( fieldIndex ); - if ( provider->capabilities() & QgsVectorDataProvider::CreateAttributeIndex ) + if ( provider->capabilities() & Qgis::VectorProviderCapability::CreateAttributeIndex ) { if ( !provider->createAttributeIndex( providerIndex ) ) { diff --git a/src/analysis/processing/qgsalgorithmsetlayerencoding.cpp b/src/analysis/processing/qgsalgorithmsetlayerencoding.cpp index fe02140de267..e3ac9fbcd926 100644 --- a/src/analysis/processing/qgsalgorithmsetlayerencoding.cpp +++ b/src/analysis/processing/qgsalgorithmsetlayerencoding.cpp @@ -83,7 +83,7 @@ bool QgsSetLayerEncodingAlgorithm::prepareAlgorithm( const QVariantMap ¶mete mOutputId = layer->id(); QgsVectorDataProvider *provider = layer->dataProvider(); - if ( provider->capabilities() & QgsVectorDataProvider::SelectEncoding ) + if ( provider->capabilities() & Qgis::VectorProviderCapability::SelectEncoding ) { layer->setProviderEncoding( encoding ); } diff --git a/src/analysis/processing/qgsalgorithmspatialindex.cpp b/src/analysis/processing/qgsalgorithmspatialindex.cpp index 4a766108bef5..2975566e5202 100644 --- a/src/analysis/processing/qgsalgorithmspatialindex.cpp +++ b/src/analysis/processing/qgsalgorithmspatialindex.cpp @@ -81,7 +81,7 @@ QVariantMap QgsSpatialIndexAlgorithm::processAlgorithm( const QVariantMap ¶m QgsVectorDataProvider *provider = layer->dataProvider(); - if ( provider->capabilities() & QgsVectorDataProvider::CreateSpatialIndex ) + if ( provider->capabilities() & Qgis::VectorProviderCapability::CreateSpatialIndex ) { if ( !provider->createSpatialIndex() ) { diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index bd3dd17b1f41..95f4796c8838 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -8788,7 +8788,7 @@ void QgisApp::deleteSelected( QgsMapLayer *layer, QWidget *, bool checkFeaturesV return; } - if ( !( vlayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures ) ) + if ( !( vlayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) { visibleMessageBar()->pushMessage( tr( "Provider does not support deletion" ), tr( "Data provider does not support deleting features" ), @@ -11517,7 +11517,7 @@ void QgisApp::updateLayerModifiedActions() QgsVectorLayer *vlayer = qobject_cast( currentLayer ); if ( QgsVectorDataProvider *dprovider = vlayer->dataProvider() ) { - enableSaveLayerEdits = ( dprovider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues + enableSaveLayerEdits = ( dprovider->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues && vlayer->isEditable() && vlayer->isModified() ); } @@ -15330,10 +15330,10 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer *layer ) if ( dprovider ) { - bool canChangeAttributes = dprovider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues; - bool canDeleteFeatures = dprovider->capabilities() & QgsVectorDataProvider::DeleteFeatures; - bool canAddFeatures = dprovider->capabilities() & QgsVectorDataProvider::AddFeatures; - bool canChangeGeometry = isSpatial && dprovider->capabilities() & QgsVectorDataProvider::ChangeGeometries; + bool canChangeAttributes = dprovider->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues; + bool canDeleteFeatures = dprovider->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures; + bool canAddFeatures = dprovider->capabilities() & Qgis::VectorProviderCapability::AddFeatures; + bool canChangeGeometry = isSpatial && dprovider->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries; bool canSupportEditing = vlayer->supportsEditing(); mActionLayerSubsetString->setEnabled( !isEditable && dprovider->supportsSubsetString() ); diff --git a/src/app/qgsattributetabledialog.cpp b/src/app/qgsattributetabledialog.cpp index 71be5cac9922..31a16d981021 100644 --- a/src/app/qgsattributetabledialog.cpp +++ b/src/app/qgsattributetabledialog.cpp @@ -327,13 +327,13 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *layer, QgsAttr mActionFeatureActions->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mAction.svg" ) ) ); // toggle editing - QgsVectorDataProvider::Capabilities capabilities = ( mLayer && mLayer->dataProvider() ) ? mLayer->dataProvider()->capabilities() : QgsVectorDataProvider::Capabilities(); - bool canChangeAttributes = capabilities & QgsVectorDataProvider::ChangeAttributeValues; - bool canDeleteFeatures = capabilities & QgsVectorDataProvider::DeleteFeatures; - bool canAddAttributes = capabilities & QgsVectorDataProvider::AddAttributes; - bool canDeleteAttributes = capabilities & QgsVectorDataProvider::DeleteAttributes; - bool canAddFeatures = capabilities & QgsVectorDataProvider::AddFeatures; - bool canReload = capabilities & QgsVectorDataProvider::ReloadData; + Qgis::VectorProviderCapabilities capabilities = ( mLayer && mLayer->dataProvider() ) ? mLayer->dataProvider()->capabilities() : Qgis::VectorProviderCapabilities(); + bool canChangeAttributes = capabilities & Qgis::VectorProviderCapability::ChangeAttributeValues; + bool canDeleteFeatures = capabilities & Qgis::VectorProviderCapability::DeleteFeatures; + bool canAddAttributes = capabilities & Qgis::VectorProviderCapability::AddAttributes; + bool canDeleteAttributes = capabilities & Qgis::VectorProviderCapability::DeleteAttributes; + bool canAddFeatures = capabilities & Qgis::VectorProviderCapability::AddFeatures; + bool canReload = capabilities & Qgis::VectorProviderCapability::ReloadData; mActionToggleEditing->blockSignals( true ); mActionToggleEditing->setCheckable( true ); @@ -456,7 +456,7 @@ void QgsAttributeTableDialog::updateTitle() else mRunFieldCalc->setText( tr( "Update Filtered" ) ); - bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures; + bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures; bool enabled = mLayer->selectedFeatureCount() > 0; mRunFieldCalcSelected->setEnabled( enabled ); mActionDeleteSelected->setEnabled( canDeleteFeatures && mLayer->isEditable() && enabled ); @@ -888,11 +888,11 @@ void QgsAttributeTableDialog::editingToggled() mActionToggleEditing->blockSignals( false ); const auto caps = mLayer->dataProvider()->capabilities(); - const bool canChangeAttributes = caps & QgsVectorDataProvider::ChangeAttributeValues; - const bool canDeleteFeatures = caps & QgsVectorDataProvider::DeleteFeatures; - const bool canAddAttributes = caps & QgsVectorDataProvider::AddAttributes; - const bool canDeleteAttributes = caps & QgsVectorDataProvider::DeleteAttributes; - const bool canAddFeatures = caps & QgsVectorDataProvider::AddFeatures; + const bool canChangeAttributes = caps & Qgis::VectorProviderCapability::ChangeAttributeValues; + const bool canDeleteFeatures = caps & Qgis::VectorProviderCapability::DeleteFeatures; + const bool canAddAttributes = caps & Qgis::VectorProviderCapability::AddAttributes; + const bool canDeleteAttributes = caps & Qgis::VectorProviderCapability::DeleteAttributes; + const bool canAddFeatures = caps & Qgis::VectorProviderCapability::AddFeatures; mActionAddAttribute->setEnabled( ( canChangeAttributes || canAddAttributes ) && isEditable ); mActionRemoveAttribute->setEnabled( canDeleteAttributes && isEditable ); mActionDeleteSelected->setEnabled( canDeleteFeatures && isEditable && mLayer->selectedFeatureCount() > 0 ); diff --git a/src/app/qgsdelattrdialog.cpp b/src/app/qgsdelattrdialog.cpp index c62eff389506..a26559993ad6 100644 --- a/src/app/qgsdelattrdialog.cpp +++ b/src/app/qgsdelattrdialog.cpp @@ -29,7 +29,7 @@ QgsDelAttrDialog::QgsDelAttrDialog( const QgsVectorLayer *vl ) if ( vl ) { - const bool canDeleteAttributes = vl->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes; + const bool canDeleteAttributes = vl->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteAttributes; listBox2->clear(); const QgsFields layerAttributes = vl->fields(); for ( int idx = 0; idx < layerAttributes.count(); ++idx ) diff --git a/src/app/qgsprojectproperties.cpp b/src/app/qgsprojectproperties.cpp index 93f7e2744baa..f34d79b46d18 100644 --- a/src/app/qgsprojectproperties.cpp +++ b/src/app/qgsprojectproperties.cpp @@ -929,9 +929,9 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa QCheckBox *cbu = new QCheckBox(); cbu->setEnabled( false ); - if ( ( provider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) ) { - if ( ! currentLayer->isSpatial() || ( provider->capabilities() & QgsVectorDataProvider::ChangeGeometries ) ) + if ( ! currentLayer->isSpatial() || ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) ) { cbu->setEnabled( true ); cbu->setChecked( wfstUpdateLayerIdList.contains( currentLayer->id() ) ); @@ -941,7 +941,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa QCheckBox *cbi = new QCheckBox(); cbi->setEnabled( false ); - if ( ( provider->capabilities() & QgsVectorDataProvider::AddFeatures ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) ) { cbi->setEnabled( true ); cbi->setChecked( wfstInsertLayerIdList.contains( currentLayer->id() ) ); @@ -950,7 +950,7 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa QCheckBox *cbd = new QCheckBox(); cbd->setEnabled( false ); - if ( ( provider->capabilities() & QgsVectorDataProvider::DeleteFeatures ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) { cbd->setEnabled( true ); cbd->setChecked( wfstDeleteLayerIdList.contains( currentLayer->id() ) ); diff --git a/src/core/annotations/qgsannotationlayer.cpp b/src/core/annotations/qgsannotationlayer.cpp index d9c6dfe60741..f8839848d4aa 100644 --- a/src/core/annotations/qgsannotationlayer.cpp +++ b/src/core/annotations/qgsannotationlayer.cpp @@ -110,7 +110,7 @@ QgsAnnotationLayer::QgsAnnotationLayer( const QString &name, const LayerOptions QgsDataProvider::ProviderOptions providerOptions; providerOptions.transformContext = options.transformContext; - mDataProvider = new QgsAnnotationLayerDataProvider( providerOptions, QgsDataProvider::ReadFlags() ); + mDataProvider = new QgsAnnotationLayerDataProvider( providerOptions, Qgis::DataProviderReadFlags() ); mPaintEffect.reset( QgsPaintEffectRegistry::defaultStack() ); mPaintEffect->setEnabled( false ); @@ -656,7 +656,7 @@ void QgsAnnotationLayer::setPaintEffect( QgsPaintEffect *effect ) ///@cond PRIVATE QgsAnnotationLayerDataProvider::QgsAnnotationLayerDataProvider( const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( QString(), options, flags ) {} diff --git a/src/core/annotations/qgsannotationlayer.h b/src/core/annotations/qgsannotationlayer.h index 9896899bf248..2637a27ba01f 100644 --- a/src/core/annotations/qgsannotationlayer.h +++ b/src/core/annotations/qgsannotationlayer.h @@ -227,7 +227,7 @@ class QgsAnnotationLayerDataProvider : public QgsDataProvider public: QgsAnnotationLayerDataProvider( const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsCoordinateReferenceSystem crs() const override; QString name() const override; QString description() const override; diff --git a/src/core/mesh/qgsmeshdataprovider.cpp b/src/core/mesh/qgsmeshdataprovider.cpp index c71c765c4f0c..41e478879e63 100644 --- a/src/core/mesh/qgsmeshdataprovider.cpp +++ b/src/core/mesh/qgsmeshdataprovider.cpp @@ -21,7 +21,7 @@ #include "qgsthreadingutils.h" QgsMeshDataProvider::QgsMeshDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) { } diff --git a/src/core/mesh/qgsmeshdataprovider.h b/src/core/mesh/qgsmeshdataprovider.h index c3e78dba3637..3b3d8de43b1e 100644 --- a/src/core/mesh/qgsmeshdataprovider.h +++ b/src/core/mesh/qgsmeshdataprovider.h @@ -444,7 +444,7 @@ class CORE_EXPORT QgsMeshDataProvider: public QgsDataProvider, public QgsMeshDat //! Ctor QgsMeshDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags = Qgis::DataProviderReadFlags() ); QgsMeshDataProviderTemporalCapabilities *temporalCapabilities() override; const QgsMeshDataProviderTemporalCapabilities *temporalCapabilities() const override SIP_SKIP; diff --git a/src/core/mesh/qgsmeshlayer.cpp b/src/core/mesh/qgsmeshlayer.cpp index 415578c01a86..ff6572e2b0c6 100644 --- a/src/core/mesh/qgsmeshlayer.cpp +++ b/src/core/mesh/qgsmeshlayer.cpp @@ -61,10 +61,10 @@ QgsMeshLayer::QgsMeshLayer( const QString &meshLayerPath, mShouldValidateCrs = !options.skipCrsValidation; const QgsDataProvider::ProviderOptions providerOptions { options.transformContext }; - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; if ( options.loadDefaultStyle ) { - flags |= QgsDataProvider::FlagLoadDefaultStyle; + flags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } QgsMeshLayer::setDataSourcePrivate( meshLayerPath, baseName, providerKey, providerOptions, flags ); resetDatasetGroupTreeItem(); @@ -1451,7 +1451,7 @@ QgsMeshRendererSettings QgsMeshLayer::accordSymbologyWithGroupName( const QgsMes return consistentSettings; } -void QgsMeshLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +void QgsMeshLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -1871,7 +1871,7 @@ bool QgsMeshLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &con } const QgsDataProvider::ProviderOptions providerOptions; - QgsDataProvider::ReadFlags flags = providerReadFlags( layer_node, mReadFlags ); + Qgis::DataProviderReadFlags flags = providerReadFlags( layer_node, mReadFlags ); const QDomElement elemExtraDatasets = layer_node.firstChildElement( QStringLiteral( "extra-datasets" ) ); if ( !elemExtraDatasets.isNull() ) @@ -2095,7 +2095,7 @@ bool QgsMeshLayer::isEditable() const return mMeshEditor != nullptr; } -bool QgsMeshLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +bool QgsMeshLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -2156,7 +2156,7 @@ bool QgsMeshLayer::setDataProvider( QString const &provider, const QgsDataProvid { int globalIndex = mDatasetGroupStore->globalDatasetGroupIndexInSource( mDataProvider, i ); if ( globalIndex != -1 && - ( !mRendererSettings.hasSettings( globalIndex ) || ( flags & QgsDataProvider::FlagLoadDefaultStyle ) ) ) + ( !mRendererSettings.hasSettings( globalIndex ) || ( flags & Qgis::DataProviderReadFlag::LoadDefaultStyle ) ) ) assignDefaultStyleToDatasetGroup( globalIndex ); } diff --git a/src/core/mesh/qgsmeshlayer.h b/src/core/mesh/qgsmeshlayer.h index 2da422e3b431..74667607948f 100644 --- a/src/core/mesh/qgsmeshlayer.h +++ b/src/core/mesh/qgsmeshlayer.h @@ -987,7 +987,7 @@ class CORE_EXPORT QgsMeshLayer : public QgsMapLayer, public QgsAbstractProfileSo * \param options generic provider options * \param flags provider flags since QGIS 3.16 */ - bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); #ifdef SIP_RUN QgsMeshLayer( const QgsMeshLayer &rhs ); @@ -1068,7 +1068,7 @@ class CORE_EXPORT QgsMeshLayer : public QgsMapLayer, public QgsAbstractProfileSo void checkSymbologyConsistency(); void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) final; + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) final; }; #endif //QGSMESHLAYER_H diff --git a/src/core/pointcloud/qgspointclouddataprovider.cpp b/src/core/pointcloud/qgspointclouddataprovider.cpp index 80d4f3279277..1c19b57ac4f4 100644 --- a/src/core/pointcloud/qgspointclouddataprovider.cpp +++ b/src/core/pointcloud/qgspointclouddataprovider.cpp @@ -33,7 +33,7 @@ QgsPointCloudDataProvider::QgsPointCloudDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) { } diff --git a/src/core/pointcloud/qgspointclouddataprovider.h b/src/core/pointcloud/qgspointclouddataprovider.h index 686144daccf3..ff5411e56e8c 100644 --- a/src/core/pointcloud/qgspointclouddataprovider.h +++ b/src/core/pointcloud/qgspointclouddataprovider.h @@ -23,9 +23,6 @@ #include "qgspointcloudattribute.h" #include "qgspointcloudindex.h" #include "qgspointcloudsubindex.h" -#include "qgspoint.h" -#include "qgsray3d.h" -#include class IndexedPointCloudNode; class QgsPointCloudIndex; @@ -75,7 +72,7 @@ class CORE_EXPORT QgsPointCloudDataProvider: public QgsDataProvider //! Ctor QgsPointCloudDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsPointCloudDataProvider() override; diff --git a/src/core/pointcloud/qgspointcloudlayer.cpp b/src/core/pointcloud/qgspointcloudlayer.cpp index 079558dc0335..e02148a47936 100644 --- a/src/core/pointcloud/qgspointcloudlayer.cpp +++ b/src/core/pointcloud/qgspointcloudlayer.cpp @@ -56,10 +56,10 @@ QgsPointCloudLayer::QgsPointCloudLayer( const QString &uri, if ( !uri.isEmpty() && !providerLib.isEmpty() ) { const QgsDataProvider::ProviderOptions providerOptions { options.transformContext }; - QgsDataProvider::ReadFlags providerFlags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags providerFlags; if ( options.loadDefaultStyle ) { - providerFlags |= QgsDataProvider::FlagLoadDefaultStyle; + providerFlags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } setDataSource( uri, baseName, providerLib, providerOptions, providerFlags ); } @@ -150,7 +150,7 @@ bool QgsPointCloudLayer::readXml( const QDomNode &layerNode, QgsReadWriteContext if ( !( mReadFlags & QgsMapLayer::FlagDontResolveLayers ) ) { const QgsDataProvider::ProviderOptions providerOptions { context.transformContext() }; - QgsDataProvider::ReadFlags flags = providerReadFlags( layerNode, mReadFlags ); + Qgis::DataProviderReadFlags flags = providerReadFlags( layerNode, mReadFlags ); // read extent if ( mReadFlags & QgsMapLayer::FlagReadExtentFromXml ) { @@ -378,7 +378,7 @@ void QgsPointCloudLayer::setTransformContext( const QgsCoordinateTransformContex } void QgsPointCloudLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -427,13 +427,13 @@ void QgsPointCloudLayer::setDataSourcePrivate( const QString &dataSource, const // Load initial extent, crs and renderer setCrs( mDataProvider->crs() ); - if ( !( flags & QgsDataProvider::SkipGetExtent ) ) + if ( !( flags & Qgis::DataProviderReadFlag::SkipGetExtent ) ) { setExtent3D( mDataProvider->extent3D() ); } bool loadDefaultStyleFlag = false; - if ( flags & QgsDataProvider::FlagLoadDefaultStyle ) + if ( flags & Qgis::DataProviderReadFlag::LoadDefaultStyle ) { loadDefaultStyleFlag = true; } diff --git a/src/core/pointcloud/qgspointcloudlayer.h b/src/core/pointcloud/qgspointcloudlayer.h index a89cb9697d2c..e14dabe07614 100644 --- a/src/core/pointcloud/qgspointcloudlayer.h +++ b/src/core/pointcloud/qgspointcloudlayer.h @@ -269,7 +269,7 @@ class CORE_EXPORT QgsPointCloudLayer : public QgsMapLayer, public QgsAbstractPro private slots: void onPointCloudIndexGenerationStateChanged( QgsPointCloudDataProvider::PointCloudIndexGenerationState state ); - void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override; + void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override; private: diff --git a/src/core/project/qgsproject.cpp b/src/core/project/qgsproject.cpp index d7f0e902d5cc..1d25de8fa2a4 100644 --- a/src/core/project/qgsproject.cpp +++ b/src/core/project/qgsproject.cpp @@ -1491,7 +1491,7 @@ struct LayerToLoad QString provider; QString dataSource; QgsDataProvider::ProviderOptions options; - QgsDataProvider::ReadFlags flags; + Qgis::DataProviderReadFlags flags; QDomElement layerElement; }; @@ -1522,8 +1522,8 @@ void QgsProject::preloadProviders( const QVector ¶llelLayerNodes, layerToLoad.flags = QgsMapLayer::providerReadFlags( node, layerReadFlags ); // Requesting credential from worker thread could lead to deadlocks because the main thread is waiting for worker thread to fininsh - layerToLoad.flags.setFlag( QgsDataProvider::SkipCredentialsRequest, true ); - layerToLoad.flags.setFlag( QgsDataProvider::ParallelThreadLoading, true ); + layerToLoad.flags.setFlag( Qgis::DataProviderReadFlag::SkipCredentialsRequest, true ); + layerToLoad.flags.setFlag( Qgis::DataProviderReadFlag::ParallelThreadLoading, true ); layersToLoad.insert( layerToLoad.layerId, layerToLoad ); } @@ -1583,9 +1583,9 @@ void QgsProject::preloadProviders( const QVector ¶llelLayerNodes, QString layerId; { const LayerToLoad &lay = it.value(); - QgsDataProvider::ReadFlags providerFlags = lay.flags; - providerFlags.setFlag( QgsDataProvider::SkipCredentialsRequest, false ); - providerFlags.setFlag( QgsDataProvider::ParallelThreadLoading, false ); + Qgis::DataProviderReadFlags providerFlags = lay.flags; + providerFlags.setFlag( Qgis::DataProviderReadFlag::SkipCredentialsRequest, false ); + providerFlags.setFlag( Qgis::DataProviderReadFlag::ParallelThreadLoading, false ); QgsScopedRuntimeProfile profile( "Create data providers/" + lay.layerId, QStringLiteral( "projectload" ) ); provider.reset( QgsProviderRegistry::instance()->createProvider( lay.provider, lay.dataSource, lay.options, providerFlags ) ); i++; diff --git a/src/core/providers/copc/qgscopcprovider.cpp b/src/core/providers/copc/qgscopcprovider.cpp index b2e7271b4537..0fdb6255574d 100644 --- a/src/core/providers/copc/qgscopcprovider.cpp +++ b/src/core/providers/copc/qgscopcprovider.cpp @@ -35,7 +35,7 @@ QgsCopcProvider::QgsCopcProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsPointCloudDataProvider( uri, options, flags ) { bool isRemote = uri.startsWith( QStringLiteral( "http" ), Qt::CaseSensitivity::CaseInsensitive ); @@ -157,7 +157,7 @@ QIcon QgsCopcProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconPointCloudLayer.svg" ) ); } -QgsCopcProvider *QgsCopcProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsCopcProvider *QgsCopcProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsCopcProvider( uri, options, flags ); } diff --git a/src/core/providers/copc/qgscopcprovider.h b/src/core/providers/copc/qgscopcprovider.h index be39f8f182a9..2a877ee288b8 100644 --- a/src/core/providers/copc/qgscopcprovider.h +++ b/src/core/providers/copc/qgscopcprovider.h @@ -35,7 +35,7 @@ class QgsCopcProvider: public QgsPointCloudDataProvider public: QgsCopcProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsCopcProvider(); @@ -68,7 +68,7 @@ class QgsCopcProviderMetadata : public QgsProviderMetadata QgsCopcProviderMetadata(); QIcon icon() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsCopcProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsCopcProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override; int priorityForUri( const QString &uri ) const override; QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override; diff --git a/src/core/providers/ept/qgseptprovider.cpp b/src/core/providers/ept/qgseptprovider.cpp index 54c12d0f9628..051f9a8f5cf3 100644 --- a/src/core/providers/ept/qgseptprovider.cpp +++ b/src/core/providers/ept/qgseptprovider.cpp @@ -36,7 +36,7 @@ QgsEptProvider::QgsEptProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsPointCloudDataProvider( uri, options, flags ) { if ( uri.startsWith( QStringLiteral( "http" ), Qt::CaseSensitivity::CaseInsensitive ) ) @@ -153,7 +153,7 @@ QIcon QgsEptProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconPointCloudLayer.svg" ) ); } -QgsEptProvider *QgsEptProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsEptProvider *QgsEptProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsEptProvider( uri, options, flags ); } diff --git a/src/core/providers/ept/qgseptprovider.h b/src/core/providers/ept/qgseptprovider.h index da0fff21d621..bcb8bfd843ba 100644 --- a/src/core/providers/ept/qgseptprovider.h +++ b/src/core/providers/ept/qgseptprovider.h @@ -35,7 +35,7 @@ class QgsEptProvider: public QgsPointCloudDataProvider public: QgsEptProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsEptProvider(); @@ -64,7 +64,7 @@ class QgsEptProviderMetadata : public QgsProviderMetadata QgsEptProviderMetadata(); QIcon icon() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsEptProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsEptProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override; int priorityForUri( const QString &uri ) const override; QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override; diff --git a/src/core/providers/gdal/qgsgdalprovider.cpp b/src/core/providers/gdal/qgsgdalprovider.cpp index b41a0d87d530..31a84474f92d 100644 --- a/src/core/providers/gdal/qgsgdalprovider.cpp +++ b/src/core/providers/gdal/qgsgdalprovider.cpp @@ -2734,7 +2734,7 @@ bool QgsGdalProviderMetadata::uriIsBlocklisted( const QString &uri ) const } -QgsGdalProvider *QgsGdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsGdalProvider *QgsGdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { Q_UNUSED( flags ); return new QgsGdalProvider( uri, options ); diff --git a/src/core/providers/gdal/qgsgdalprovider.h b/src/core/providers/gdal/qgsgdalprovider.h index 12abf8ecc7cf..3bbff95a0e94 100644 --- a/src/core/providers/gdal/qgsgdalprovider.h +++ b/src/core/providers/gdal/qgsgdalprovider.h @@ -391,7 +391,7 @@ class QgsGdalProviderMetadata final: public QgsProviderMetadata QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override; bool uriIsBlocklisted( const QString &uri ) const override; - QgsGdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsGdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QgsGdalProvider *createRasterDataProvider( const QString &uri, const QString &format, diff --git a/src/core/providers/memory/qgsmemoryprovider.cpp b/src/core/providers/memory/qgsmemoryprovider.cpp index 6fcdcbe893b8..7805353d8cfd 100644 --- a/src/core/providers/memory/qgsmemoryprovider.cpp +++ b/src/core/providers/memory/qgsmemoryprovider.cpp @@ -35,7 +35,7 @@ #define TEXT_PROVIDER_KEY QStringLiteral( "memory" ) #define TEXT_PROVIDER_DESCRIPTION QStringLiteral( "Memory provider" ) -QgsMemoryProvider::QgsMemoryProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsMemoryProvider::QgsMemoryProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { // Initialize the geometry with the uri to support old style uri's @@ -785,11 +785,11 @@ Qgis::SpatialIndexPresence QgsMemoryProvider::hasSpatialIndex() const return mSpatialIndex ? Qgis::SpatialIndexPresence::Present : Qgis::SpatialIndexPresence::NotPresent; } -QgsVectorDataProvider::Capabilities QgsMemoryProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsMemoryProvider::capabilities() const { - return AddFeatures | DeleteFeatures | ChangeGeometries | - ChangeAttributeValues | AddAttributes | DeleteAttributes | RenameAttributes | CreateSpatialIndex | - SelectAtId | CircularGeometries | FastTruncate; + return Qgis::VectorProviderCapability::AddFeatures | Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::ChangeGeometries | + Qgis::VectorProviderCapability::ChangeAttributeValues | Qgis::VectorProviderCapability::AddAttributes | Qgis::VectorProviderCapability::DeleteAttributes | Qgis::VectorProviderCapability::RenameAttributes | Qgis::VectorProviderCapability::CreateSpatialIndex | + Qgis::VectorProviderCapability::SelectAtId | Qgis::VectorProviderCapability::CircularGeometries | Qgis::VectorProviderCapability::FastTruncate; } bool QgsMemoryProvider::truncate() @@ -826,7 +826,7 @@ QIcon QgsMemoryProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconMemory.svg" ) ); } -QgsDataProvider *QgsMemoryProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsMemoryProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsMemoryProvider( uri, options, flags ); } diff --git a/src/core/providers/memory/qgsmemoryprovider.h b/src/core/providers/memory/qgsmemoryprovider.h index 17083f595039..cac2d96b8063 100644 --- a/src/core/providers/memory/qgsmemoryprovider.h +++ b/src/core/providers/memory/qgsmemoryprovider.h @@ -33,7 +33,7 @@ class QgsMemoryProvider final: public QgsVectorDataProvider public: explicit QgsMemoryProvider( const QString &uri, const QgsVectorDataProvider::ProviderOptions &coordinateTransformContext, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsMemoryProvider() override; @@ -64,7 +64,7 @@ class QgsMemoryProvider final: public QgsVectorDataProvider bool supportsSubsetString() const override { return true; } bool createSpatialIndex() override; Qgis::SpatialIndexPresence hasSpatialIndex() const override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; bool truncate() override; /* Implementation of functions from QgsDataProvider */ @@ -106,7 +106,7 @@ class QgsMemoryProviderMetadata final: public QgsProviderMetadata public: QgsMemoryProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; }; diff --git a/src/core/providers/meshmemory/qgsmeshmemorydataprovider.cpp b/src/core/providers/meshmemory/qgsmeshmemorydataprovider.cpp index 9f7918acf95e..3f2d23a8ff8e 100644 --- a/src/core/providers/meshmemory/qgsmeshmemorydataprovider.cpp +++ b/src/core/providers/meshmemory/qgsmeshmemorydataprovider.cpp @@ -20,7 +20,6 @@ #include "qgsmeshdataprovidertemporalcapabilities.h" #include "qgsapplication.h" -#include #include #define TEXT_PROVIDER_KEY QStringLiteral( "mesh_memory" ) @@ -48,7 +47,7 @@ QgsCoordinateReferenceSystem QgsMeshMemoryDataProvider::crs() const QgsMeshMemoryDataProvider::QgsMeshMemoryDataProvider( const QString &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsMeshDataProvider( uri, options, flags ) { QString data( uri ); @@ -619,7 +618,7 @@ QIcon QgsMeshMemoryProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconMeshLayer.svg" ) ); } -QgsDataProvider *QgsMeshMemoryProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsMeshMemoryProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsMeshMemoryDataProvider( uri, options, flags ); } diff --git a/src/core/providers/meshmemory/qgsmeshmemorydataprovider.h b/src/core/providers/meshmemory/qgsmeshmemorydataprovider.h index 48777548d928..8d41130cbe75 100644 --- a/src/core/providers/meshmemory/qgsmeshmemorydataprovider.h +++ b/src/core/providers/meshmemory/qgsmeshmemorydataprovider.h @@ -84,7 +84,7 @@ class CORE_EXPORT QgsMeshMemoryDataProvider final: public QgsMeshDataProvider * \endcode */ QgsMeshMemoryDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); bool isValid() const override; QString name() const override; @@ -194,7 +194,7 @@ class QgsMeshMemoryProviderMetadata final: public QgsProviderMetadata public: QgsMeshMemoryProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; }; diff --git a/src/core/providers/ogr/qgsogrprovider.cpp b/src/core/providers/ogr/qgsogrprovider.cpp index b2e6c803ce83..2af338597ac7 100644 --- a/src/core/providers/ogr/qgsogrprovider.cpp +++ b/src/core/providers/ogr/qgsogrprovider.cpp @@ -395,7 +395,7 @@ Qgis::VectorExportResult QgsOgrProvider::createEmptyLayer( const QString &uri, return Qgis::VectorExportResult::Success; } -QgsOgrProvider::QgsOgrProvider( QString const &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsOgrProvider::QgsOgrProvider( QString const &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { QgsApplication::registerOgrDrivers(); @@ -461,7 +461,7 @@ QgsOgrProvider::QgsOgrProvider( QString const &uri, const ProviderOptions &optio QgsCPLHTTPFetchOverrider oCPLHTTPFetcher( mAuthCfg ); QgsSetCPLHTTPFetchOverriderInitiatorClass( oCPLHTTPFetcher, QStringLiteral( "QgsOgrProvider" ) ); - if ( mReadFlags & QgsDataProvider::ForceReadOnly ) + if ( mReadFlags & Qgis::DataProviderReadFlag::ForceReadOnly ) { open( OpenModeForceReadOnly ); } @@ -594,7 +594,7 @@ QStringList subLayerDetailsToStringList( const QList< QgsProviderSublayerDetails QStringList QgsOgrProvider::subLayers() const { - const bool withFeatureCount = ( mReadFlags & QgsDataProvider::SkipFeatureCount ) == 0; + const bool withFeatureCount = ( mReadFlags & Qgis::DataProviderReadFlag::SkipFeatureCount ) == 0; Qgis::SublayerQueryFlags flags = withFeatureCount ? ( Qgis::SublayerQueryFlag::CountFeatures | Qgis::SublayerQueryFlag::ResolveGeometryType ) @@ -1514,7 +1514,7 @@ Qgis::WkbType QgsOgrProvider::wkbType() const */ long long QgsOgrProvider::featureCount() const { - if ( ( mReadFlags & QgsDataProvider::SkipFeatureCount ) != 0 ) + if ( ( mReadFlags & Qgis::DataProviderReadFlag::SkipFeatureCount ) != 0 ) { return static_cast< long long >( Qgis::FeatureCountState::UnknownCount ); } @@ -3385,7 +3385,7 @@ bool QgsOgrProvider::doInitialActionsForEdition() return true; } -QgsVectorDataProvider::Capabilities QgsOgrProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsOgrProvider::capabilities() const { return mCapabilities; } @@ -3397,7 +3397,7 @@ Qgis::VectorDataProviderAttributeEditCapabilities QgsOgrProvider::attributeEditC void QgsOgrProvider::computeCapabilities() { - QgsVectorDataProvider::Capabilities ability = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities ability; bool updateModeActivated = false; // collect abilities reported by OGR @@ -3424,19 +3424,19 @@ void QgsOgrProvider::computeCapabilities() // (vs read from disk every time) based on this setting. { // the latter flag is here just for compatibility - ability |= QgsVectorDataProvider::SelectAtId; + ability |= Qgis::VectorProviderCapability::SelectAtId; } if ( mWriteAccessPossible && mOgrLayer->TestCapability( "SequentialWrite" ) ) // true if the CreateFeature() method works for this layer. { - ability |= QgsVectorDataProvider::AddFeatures; + ability |= Qgis::VectorProviderCapability::AddFeatures; } if ( mWriteAccessPossible && mOgrLayer->TestCapability( "DeleteFeature" ) ) // true if this layer can delete its features { - ability |= DeleteFeatures; + ability |= Qgis::VectorProviderCapability::DeleteFeatures; } if ( mWriteAccessPossible && mOgrLayer->TestCapability( "RandomWrite" ) ) @@ -3447,8 +3447,8 @@ void QgsOgrProvider::computeCapabilities() // TODO Need to work out versions of shapelib vs versions of GDAL/OGR // TODO And test appropriately. - ability |= ChangeAttributeValues; - ability |= ChangeGeometries; + ability |= Qgis::VectorProviderCapability::ChangeAttributeValues; + ability |= Qgis::VectorProviderCapability::ChangeGeometries; } #if 0 @@ -3470,40 +3470,41 @@ void QgsOgrProvider::computeCapabilities() if ( mWriteAccessPossible && mOgrLayer->TestCapability( "CreateField" ) ) { - ability |= AddAttributes; + ability |= Qgis::VectorProviderCapability::AddAttributes; } if ( mWriteAccessPossible && mOgrLayer->TestCapability( "DeleteField" ) ) { - ability |= DeleteAttributes; + ability |= Qgis::VectorProviderCapability::DeleteAttributes; } if ( mWriteAccessPossible && mOgrLayer->TestCapability( "AlterFieldDefn" ) ) { - ability |= RenameAttributes; + ability |= Qgis::VectorProviderCapability::RenameAttributes; } if ( !mOgrLayer->TestCapability( OLCStringsAsUTF8 ) ) { - ability |= SelectEncoding; + ability |= Qgis::VectorProviderCapability::SelectEncoding; } // OGR doesn't handle shapefiles without attributes, ie. missing DBFs well, fixes #803 if ( mGDALDriverName == QLatin1String( "ESRI Shapefile" ) ) { - ability |= CreateSpatialIndex; - ability |= CreateAttributeIndex; + ability |= Qgis::VectorProviderCapability::CreateSpatialIndex; + ability |= Qgis::VectorProviderCapability::CreateAttributeIndex; - if ( ( ability & ChangeAttributeValues ) == 0 ) + if ( ( ability & Qgis::VectorProviderCapability::ChangeAttributeValues ) == 0 ) { // on readonly shapes OGR reports that it can delete features although it can't RandomWrite - ability &= ~( AddAttributes | DeleteFeatures ); + ability.setFlag( Qgis::VectorProviderCapability::AddAttributes, false ); + ability.setFlag( Qgis::VectorProviderCapability::DeleteFeatures, false ); } } else if ( mGDALDriverName == QLatin1String( "GPKG" ) ) { - ability |= CreateSpatialIndex; - ability |= CreateAttributeIndex; + ability |= Qgis::VectorProviderCapability::CreateSpatialIndex; + ability |= Qgis::VectorProviderCapability::CreateAttributeIndex; } else if ( mGDALDriverName == QLatin1String( "SQLite" ) ) { @@ -3520,20 +3521,20 @@ void QgsOgrProvider::computeCapabilities() } if ( isSpatialite ) - ability |= CreateSpatialIndex; - ability |= CreateAttributeIndex; + ability |= Qgis::VectorProviderCapability::CreateSpatialIndex; + ability |= Qgis::VectorProviderCapability::CreateAttributeIndex; } /* Curve geometries are available in some drivers starting with GDAL 2.0 */ if ( mOgrLayer->TestCapability( "CurveGeometries" ) ) { - ability |= CircularGeometries; + ability |= Qgis::VectorProviderCapability::CircularGeometries; } if ( mGDALDriverName == QLatin1String( "GPKG" ) ) { //supports transactions - ability |= TransactionSupport; + ability |= Qgis::VectorProviderCapability::TransactionSupport; } #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,7,0) @@ -3543,8 +3544,8 @@ void QgsOgrProvider::computeCapabilities() if ( mGDALDriverName != QLatin1String( "KML" ) && GDALGetMetadataItem( mOgrLayer->driver(), GDAL_DCAP_FEATURE_STYLES, nullptr ) != nullptr ) #endif { - ability |= FeatureSymbology; - ability |= CreateRenderer; + ability |= Qgis::VectorProviderCapability::FeatureSymbology; + ability |= Qgis::VectorProviderCapability::CreateRenderer; } #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,7,0) @@ -3564,8 +3565,8 @@ void QgsOgrProvider::computeCapabilities() #endif } - ability |= ReadLayerMetadata; - ability |= ReloadData; + ability |= Qgis::VectorProviderCapability::ReadLayerMetadata; + ability |= Qgis::VectorProviderCapability::ReloadData; if ( updateModeActivated ) leaveUpdateMode(); @@ -4193,7 +4194,7 @@ bool QgsOgrProvider::doesStrictFeatureTypeCheck() const QgsFeatureRenderer *QgsOgrProvider::createRenderer( const QVariantMap & ) const { - if ( !( mCapabilities & FeatureSymbology ) ) + if ( !( mCapabilities & Qgis::VectorProviderCapability::FeatureSymbology ) ) return nullptr; std::unique_ptr< QgsSymbol > defaultSymbol( QgsSymbol::defaultSymbol( QgsWkbTypes::geometryType( wkbType() ) ) ); diff --git a/src/core/providers/ogr/qgsogrprovider.h b/src/core/providers/ogr/qgsogrprovider.h index 4338984084eb..58820b5ac9ee 100644 --- a/src/core/providers/ogr/qgsogrprovider.h +++ b/src/core/providers/ogr/qgsogrprovider.h @@ -60,7 +60,7 @@ class QgsOgrProvider final: public QgsVectorDataProvider */ explicit QgsOgrProvider( QString const &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsOgrProvider() override; @@ -113,7 +113,7 @@ class QgsOgrProvider final: public QgsVectorDataProvider bool changeGeometryValues( const QgsGeometryMap &geometry_map ) override; bool createSpatialIndex() override; bool createAttributeIndex( int field ) override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; Qgis::VectorDataProviderAttributeEditCapabilities attributeEditCapabilities() const override; QgsAttributeList pkAttributeIndexes() const override { return mPrimaryKeyAttrs; } void setEncoding( const QString &e ) override; @@ -334,7 +334,7 @@ class QgsOgrProvider final: public QgsVectorDataProvider void computeCapabilities(); - QgsVectorDataProvider::Capabilities mCapabilities = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities mCapabilities; Qgis::VectorDataProviderAttributeEditCapabilities mAttributeEditCapabilities = Qgis::VectorDataProviderAttributeEditCapabilities(); bool doInitialActionsForEdition(); diff --git a/src/core/providers/ogr/qgsogrprovidermetadata.cpp b/src/core/providers/ogr/qgsogrprovidermetadata.cpp index 2f501eb855b6..f2f028b05d3b 100644 --- a/src/core/providers/ogr/qgsogrprovidermetadata.cpp +++ b/src/core/providers/ogr/qgsogrprovidermetadata.cpp @@ -47,7 +47,7 @@ email : nyall dot dawson at gmail dot com #define TEXT_PROVIDER_DESCRIPTION QStringLiteral( "OGR data provider" ) QgsDataProvider *QgsOgrProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { return new QgsOgrProvider( uri, options, flags ); } diff --git a/src/core/providers/ogr/qgsogrprovidermetadata.h b/src/core/providers/ogr/qgsogrprovidermetadata.h index 8a3cf9da1f8e..11e8f058ae4e 100644 --- a/src/core/providers/ogr/qgsogrprovidermetadata.h +++ b/src/core/providers/ogr/qgsogrprovidermetadata.h @@ -38,7 +38,7 @@ class QgsOgrProviderMetadata final: public QgsProviderMetadata void initProvider() override; void cleanupProvider() override; QList< QgsDataItemProvider * > dataItemProviders() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; diff --git a/src/core/providers/qgsdataprovider.cpp b/src/core/providers/qgsdataprovider.cpp index 6f793d0f3829..29633306a096 100644 --- a/src/core/providers/qgsdataprovider.cpp +++ b/src/core/providers/qgsdataprovider.cpp @@ -21,7 +21,7 @@ #define SUBLAYER_SEPARATOR QStringLiteral( "!!::!!" ) QgsDataProvider::QgsDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : mDataSourceURI( uri ), mOptions( providerOptions ) { diff --git a/src/core/providers/qgsdataprovider.h b/src/core/providers/qgsdataprovider.h index 1e6aa66e7f7f..d539d46b1f8d 100644 --- a/src/core/providers/qgsdataprovider.h +++ b/src/core/providers/qgsdataprovider.h @@ -99,23 +99,6 @@ class CORE_EXPORT QgsDataProvider : public QObject }; - /** - * Flags which control dataprovider construction. - * \since QGIS 3.16 - */ - enum ReadFlag SIP_ENUM_BASETYPE( IntFlag ) - { - FlagTrustDataSource = 1 << 0, //!< Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load. Since QGIS 3.16 - SkipFeatureCount = 1 << 1, //!< Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing. - FlagLoadDefaultStyle = 1 << 2, //!< Reset the layer's style to the default for the datasource - SkipGetExtent = 1 << 3, //!< Skip the extent from provider - SkipFullScan = 1 << 4, //!< Skip expensive full scan on files (i.e. on delimited text) (since QGIS 3.24) - ForceReadOnly = 1 << 5, //!< Open layer in a read-only mode (since QGIS 3.28) - SkipCredentialsRequest = 1 << 6, //! Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread (since QGIS 3.32). - ParallelThreadLoading = 1 << 7, //! Provider is created in a parallel thread than the one where it will live (since QGIS 3.32.1). - }; - Q_DECLARE_FLAGS( ReadFlags, ReadFlag ) - /** * Create a new dataprovider with the specified in the \a uri. * @@ -123,7 +106,7 @@ class CORE_EXPORT QgsDataProvider : public QObject */ QgsDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /** * Returns the coordinate system for the data source. @@ -694,7 +677,7 @@ class CORE_EXPORT QgsDataProvider : public QObject void setError( const QgsError &error ) { mError = error;} //! Read flags. It's up to the subclass to respect these when needed - QgsDataProvider::ReadFlags mReadFlags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags mReadFlags; private: @@ -722,6 +705,4 @@ class CORE_EXPORT QgsDataProvider : public QObject friend class TestQgsProject; }; -Q_DECLARE_OPERATORS_FOR_FLAGS( QgsDataProvider::ReadFlags ) - #endif diff --git a/src/core/providers/qgsprovidermetadata.cpp b/src/core/providers/qgsprovidermetadata.cpp index 6e13a65b863b..fe11e4718af1 100644 --- a/src/core/providers/qgsprovidermetadata.cpp +++ b/src/core/providers/qgsprovidermetadata.cpp @@ -134,7 +134,7 @@ QList QgsProviderMetadata::querySublayers( const QSt QgsDataProvider *QgsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { if ( mCreateFunction ) { diff --git a/src/core/providers/qgsprovidermetadata.h b/src/core/providers/qgsprovidermetadata.h index 933d551e6c83..76329243a75e 100644 --- a/src/core/providers/qgsprovidermetadata.h +++ b/src/core/providers/qgsprovidermetadata.h @@ -209,7 +209,7 @@ class CORE_EXPORT QgsProviderMetadata : public QObject /** * Typedef for data provider creation function. */ - SIP_SKIP typedef std::function < QgsDataProvider*( const QString &, const QgsDataProvider::ProviderOptions &, QgsDataProvider::ReadFlags & ) > CreateDataProviderFunction; + SIP_SKIP typedef std::function < QgsDataProvider*( const QString &, const QgsDataProvider::ProviderOptions &, Qgis::DataProviderReadFlags & ) > CreateDataProviderFunction; /** * Constructor for provider metadata @@ -461,7 +461,7 @@ class CORE_EXPORT QgsProviderMetadata : public QObject */ virtual QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) SIP_FACTORY; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) SIP_FACTORY; /** * Sets the \a value into the \a uri \a parameter as a bool. diff --git a/src/core/providers/qgsproviderregistry.cpp b/src/core/providers/qgsproviderregistry.cpp index 652caec1fb05..5cc1aca39685 100644 --- a/src/core/providers/qgsproviderregistry.cpp +++ b/src/core/providers/qgsproviderregistry.cpp @@ -621,7 +621,7 @@ QDir QgsProviderRegistry::libraryDirectory() const */ QgsDataProvider *QgsProviderRegistry::createProvider( QString const &providerKey, QString const &dataSource, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { // XXX should I check for and possibly delete any pre-existing providers? // XXX How often will that scenario occur? diff --git a/src/core/providers/qgsproviderregistry.h b/src/core/providers/qgsproviderregistry.h index fc4edaec6afe..2664699e0b4e 100644 --- a/src/core/providers/qgsproviderregistry.h +++ b/src/core/providers/qgsproviderregistry.h @@ -29,9 +29,6 @@ #include "qgis_core.h" #include "qgis_sip.h" -#include -#include - class QgsProviderMetadata; class QgsVectorLayer; class QgsCoordinateReferenceSystem; @@ -147,7 +144,7 @@ class CORE_EXPORT QgsProviderRegistry QgsDataProvider *createProvider( const QString &providerKey, const QString &dataSource, const QgsDataProvider::ProviderOptions &options = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) SIP_TRANSFERBACK; + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) SIP_TRANSFERBACK; /** * Returns the provider capabilities diff --git a/src/core/providers/qgsrunnableprovidercreator.cpp b/src/core/providers/qgsrunnableprovidercreator.cpp index 1984fb609648..36744e9d24dd 100644 --- a/src/core/providers/qgsrunnableprovidercreator.cpp +++ b/src/core/providers/qgsrunnableprovidercreator.cpp @@ -21,7 +21,7 @@ #include "qgsproviderregistry.h" #include "qgsruntimeprofiler.h" -QgsRunnableProviderCreator::QgsRunnableProviderCreator( const QString &layerId, const QString &providerKey, const QString &dataSource, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsRunnableProviderCreator::QgsRunnableProviderCreator( const QString &layerId, const QString &providerKey, const QString &dataSource, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : mLayerId( layerId ) , mProviderKey( providerKey ) , mDataSource( dataSource ) diff --git a/src/core/providers/qgsrunnableprovidercreator.h b/src/core/providers/qgsrunnableprovidercreator.h index 5f6c02c9112e..2d81d8959bcf 100644 --- a/src/core/providers/qgsrunnableprovidercreator.h +++ b/src/core/providers/qgsrunnableprovidercreator.h @@ -40,7 +40,7 @@ class QgsRunnableProviderCreator : public QObject, public QRunnable QString const &providerKey, QString const &dataSource, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); void run() override; @@ -61,7 +61,7 @@ class QgsRunnableProviderCreator : public QObject, public QRunnable QString mProviderKey; QString mDataSource; QgsDataProvider::ProviderOptions mOptions; - QgsDataProvider::ReadFlags mFlags; + Qgis::DataProviderReadFlags mFlags; }; #endif // QGSRUNNABLEPROVIDERCREATOR_H diff --git a/src/core/providers/sensorthings/qgssensorthingsprovider.cpp b/src/core/providers/sensorthings/qgssensorthingsprovider.cpp index 9cdc47e50507..a09d4c0b94f4 100644 --- a/src/core/providers/sensorthings/qgssensorthingsprovider.cpp +++ b/src/core/providers/sensorthings/qgssensorthingsprovider.cpp @@ -33,7 +33,7 @@ ///@cond PRIVATE -QgsSensorThingsProvider::QgsSensorThingsProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsSensorThingsProvider::QgsSensorThingsProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { mSharedData = std::make_shared< QgsSensorThingsSharedData >( uri ); @@ -165,7 +165,7 @@ long long QgsSensorThingsProvider::featureCount() const { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - if ( ( mReadFlags & QgsDataProvider::SkipFeatureCount ) != 0 ) + if ( ( mReadFlags & Qgis::DataProviderReadFlag::SkipFeatureCount ) != 0 ) { return static_cast< long long >( Qgis::FeatureCountState::UnknownCount ); } @@ -212,13 +212,13 @@ Qgis::DataProviderFlags QgsSensorThingsProvider::flags() const return Qgis::DataProviderFlag::FastExtent2D; } -QgsVectorDataProvider::Capabilities QgsSensorThingsProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsSensorThingsProvider::capabilities() const { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - QgsVectorDataProvider::Capabilities c = QgsVectorDataProvider::SelectAtId - | QgsVectorDataProvider::ReadLayerMetadata - | QgsVectorDataProvider::Capability::ReloadData; + Qgis::VectorProviderCapabilities c = Qgis::VectorProviderCapability::SelectAtId + | Qgis::VectorProviderCapability::ReadLayerMetadata + | Qgis::VectorProviderCapability::ReloadData; return c; } @@ -546,7 +546,7 @@ QString QgsSensorThingsProviderMetadata::encodeUri( const QVariantMap &parts ) c return dsUri.uri( false ); } -QgsSensorThingsProvider *QgsSensorThingsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsSensorThingsProvider *QgsSensorThingsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsSensorThingsProvider( uri, options, flags ); } diff --git a/src/core/providers/sensorthings/qgssensorthingsprovider.h b/src/core/providers/sensorthings/qgssensorthingsprovider.h index 7b0089f648b5..38c7e69bce5b 100644 --- a/src/core/providers/sensorthings/qgssensorthingsprovider.h +++ b/src/core/providers/sensorthings/qgssensorthingsprovider.h @@ -39,7 +39,7 @@ class CORE_EXPORT QgsSensorThingsProvider final : public QgsVectorDataProvider static const inline QString SENSORTHINGS_PROVIDER_KEY = QStringLiteral( "sensorthings" ); static const inline QString SENSORTHINGS_PROVIDER_DESCRIPTION = QStringLiteral( "OGC SensorThings API data provider" ); - QgsSensorThingsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + QgsSensorThingsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); QgsAbstractFeatureSource *featureSource() const final; QString storageType() const final; @@ -51,7 +51,7 @@ class CORE_EXPORT QgsSensorThingsProvider final : public QgsVectorDataProvider QString htmlMetadata() const final; Qgis::DataProviderFlags flags() const final; - QgsVectorDataProvider::Capabilities capabilities() const final; + Qgis::VectorProviderCapabilities capabilities() const final; bool supportsSubsetString() const final; QString subsetString() const final; bool setSubsetString( const QString &subset, bool updateFeatureCount = true ) final; @@ -87,7 +87,7 @@ class QgsSensorThingsProviderMetadata final: public QgsProviderMetadata QList dataItemProviders() const final; QVariantMap decodeUri( const QString &uri ) const final; QString encodeUri( const QVariantMap &parts ) const final; - QgsSensorThingsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) final; + QgsSensorThingsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) final; QList< Qgis::LayerType > supportedLayerTypes() const final; // handling of stored connections diff --git a/src/core/providers/vpc/qgsvirtualpointcloudprovider.cpp b/src/core/providers/vpc/qgsvirtualpointcloudprovider.cpp index 418d7eb29174..09a4b256615e 100644 --- a/src/core/providers/vpc/qgsvirtualpointcloudprovider.cpp +++ b/src/core/providers/vpc/qgsvirtualpointcloudprovider.cpp @@ -46,7 +46,7 @@ QgsVirtualPointCloudProvider::QgsVirtualPointCloudProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsPointCloudDataProvider( uri, options, flags ) { std::unique_ptr< QgsScopedRuntimeProfile > profile; @@ -536,7 +536,7 @@ QIcon QgsVirtualPointCloudProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconPointCloudLayer.svg" ) ); } -QgsVirtualPointCloudProvider *QgsVirtualPointCloudProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsVirtualPointCloudProvider *QgsVirtualPointCloudProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsVirtualPointCloudProvider( uri, options, flags ); } diff --git a/src/core/providers/vpc/qgsvirtualpointcloudprovider.h b/src/core/providers/vpc/qgsvirtualpointcloudprovider.h index 711a804cc365..aa5d9ac126d9 100644 --- a/src/core/providers/vpc/qgsvirtualpointcloudprovider.h +++ b/src/core/providers/vpc/qgsvirtualpointcloudprovider.h @@ -35,7 +35,7 @@ class CORE_EXPORT QgsVirtualPointCloudProvider: public QgsPointCloudDataProvider public: QgsVirtualPointCloudProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsVirtualPointCloudProvider(); @@ -85,7 +85,7 @@ class QgsVirtualPointCloudProviderMetadata : public QgsProviderMetadata QgsVirtualPointCloudProviderMetadata(); QIcon icon() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsVirtualPointCloudProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsVirtualPointCloudProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override; int priorityForUri( const QString &uri ) const override; QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override; diff --git a/src/core/qgis.h b/src/core/qgis.h index b650b2e14adb..bbaa69378eff 100644 --- a/src/core/qgis.h +++ b/src/core/qgis.h @@ -346,6 +346,86 @@ class CORE_EXPORT Qgis }; Q_ENUM( PythonMacroMode ) + /** + * Flags which control data provider construction. + * + * \note Prior to QGIS 3.40 this was available as QgsDataProvider::ReadFlag + * + * \since QGIS 3.40 + */ + enum class DataProviderReadFlag SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataProvider, ReadFlag ) : int SIP_ENUM_BASETYPE( IntFlag ) + { + TrustDataSource SIP_MONKEYPATCH_COMPAT_NAME( FlagTrustDataSource ) = 1 << 0, //!< Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load. Since QGIS 3.16 + SkipFeatureCount = 1 << 1, //!< Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing. + LoadDefaultStyle SIP_MONKEYPATCH_COMPAT_NAME( FlagLoadDefaultStyle ) = 1 << 2, //!< Reset the layer's style to the default for the datasource + SkipGetExtent = 1 << 3, //!< Skip the extent from provider + SkipFullScan = 1 << 4, //!< Skip expensive full scan on files (i.e. on delimited text) (since QGIS 3.24) + ForceReadOnly = 1 << 5, //!< Open layer in a read-only mode (since QGIS 3.28) + SkipCredentialsRequest = 1 << 6, //!< Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread (since QGIS 3.32). + ParallelThreadLoading = 1 << 7, //!< Provider is created in a parallel thread than the one where it will live (since QGIS 3.32.1). + }; + Q_ENUM( DataProviderReadFlag ) + + /** + * Flags which control data provider construction. + * + * \note Prior to QGIS 3.40 this was available as QgsDataProvider::ReadFlags + * + * \since QGIS 3.40 + */ + Q_DECLARE_FLAGS( DataProviderReadFlags, DataProviderReadFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsDataProvider, ReadFlags ) + Q_FLAG( DataProviderReadFlags ) + + // TODO QGIS 4 -- remove NoCapabilities and rely on VectorProviderCapabilities() instead + + /** + * Vector data provider capabilities. + * + * \note Prior to QGIS 3.40 this was available as QgsVectorDataProvider::Capability + * + * \since QGIS 3.40 + */ + enum class VectorProviderCapability SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorDataProvider, Capability ) : int SIP_ENUM_BASETYPE( IntFlag ) + { + NoCapabilities = 0, //!< Provider has no capabilities + AddFeatures = 1, //!< Allows adding features + DeleteFeatures = 1 << 1, //!< Allows deletion of features + ChangeAttributeValues = 1 << 2, //!< Allows modification of attribute values + AddAttributes = 1 << 3, //!< Allows addition of new attributes (fields) + DeleteAttributes = 1 << 4, //!< Allows deletion of attributes (fields) + CreateSpatialIndex = 1 << 6, //!< Allows creation of spatial index + SelectAtId = 1 << 7, //!< Fast access to features using their ID + ChangeGeometries = 1 << 8, //!< Allows modifications of geometries + SelectEncoding = 1 << 13, //!< Allows user to select encoding + CreateAttributeIndex = 1 << 12, //!< Can create indexes on provider's fields + SimplifyGeometries = 1 << 14, //!< Supports simplification of geometries on provider side according to a distance tolerance + SimplifyGeometriesWithTopologicalValidation = 1 << 15, //!< Supports topological simplification of geometries on provider side according to a distance tolerance + TransactionSupport = 1 << 16, //!< Supports transactions + CircularGeometries = 1 << 17, //!< Supports circular geometry types (circularstring, compoundcurve, curvepolygon) + ChangeFeatures = 1 << 18, //!< Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues. + RenameAttributes = 1 << 19, //!< Supports renaming attributes (fields). Since QGIS 2.16 + FastTruncate = 1 << 20, //!< Supports fast truncation of the layer (removing all features). Since QGIS 3.0 + ReadLayerMetadata = 1 << 21, //!< Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider::layerMetadata() + WriteLayerMetadata = 1 << 22, //!< Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider::writeLayerMetadata() + CancelSupport = 1 << 23, //!< Supports interruption of pending queries from a separated thread. Since QGIS 3.2 + CreateRenderer = 1 << 24, //!< Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider::createRenderer(). + CreateLabeling = 1 << 25, //!< Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider::createLabeling(). + ReloadData = 1 << 26, //!< Provider is able to force reload data + FeatureSymbology = 1 << 27, //!< Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3.20. + EditingCapabilities = AddFeatures | DeleteFeatures | ChangeAttributeValues | ChangeGeometries | AddAttributes | DeleteAttributes | RenameAttributes, //!< Bitmask of all editing capabilities + }; + Q_ENUM( VectorProviderCapability ) + + /** + * Vector data provider capabilities. + * + * \note Prior to QGIS 3.40 this was available as QgsVectorDataProvider::Capabilities + * + * \since QGIS 3.40 + */ + Q_DECLARE_FLAGS( VectorProviderCapabilities, VectorProviderCapability ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsVectorDataProvider, Capabilities ) + Q_FLAG( VectorProviderCapabilities ) + /** * \ingroup core * \brief Enumeration of feature count states @@ -5414,6 +5494,8 @@ Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProcessingParameterTypeFlags ) Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProcessingParameterFlags ) Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DataItemProviderCapabilities ) Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorRenderingSimplificationFlags ) +Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DataProviderReadFlags ) +Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorProviderCapabilities ) // hack to workaround warnings when casting void pointers // retrieved from QLibrary::resolve to function pointers. diff --git a/src/core/qgsgrouplayer.cpp b/src/core/qgsgrouplayer.cpp index f97840742032..fa3be8e1ceb9 100644 --- a/src/core/qgsgrouplayer.cpp +++ b/src/core/qgsgrouplayer.cpp @@ -39,7 +39,7 @@ QgsGroupLayer::QgsGroupLayer( const QString &name, const LayerOptions &options ) QgsDataProvider::ProviderOptions providerOptions; providerOptions.transformContext = options.transformContext; - mDataProvider = new QgsGroupLayerDataProvider( providerOptions, QgsDataProvider::ReadFlags() ); + mDataProvider = new QgsGroupLayerDataProvider( providerOptions, Qgis::DataProviderReadFlags() ); } QgsGroupLayer::~QgsGroupLayer() @@ -365,7 +365,7 @@ void QgsGroupLayer::prepareLayersForRemovalFromGroup() ///@cond PRIVATE QgsGroupLayerDataProvider::QgsGroupLayerDataProvider( const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( QString(), options, flags ) {} diff --git a/src/core/qgsgrouplayer.h b/src/core/qgsgrouplayer.h index f3362bbbd0ec..9ae8e16735c0 100644 --- a/src/core/qgsgrouplayer.h +++ b/src/core/qgsgrouplayer.h @@ -161,7 +161,7 @@ class QgsGroupLayerDataProvider : public QgsDataProvider public: QgsGroupLayerDataProvider( const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); void setCrs( const QgsCoordinateReferenceSystem &crs ); QgsCoordinateReferenceSystem crs() const override; QString name() const override; diff --git a/src/core/qgsmaplayer.cpp b/src/core/qgsmaplayer.cpp index 309fe0ae188c..5af8c84790bf 100644 --- a/src/core/qgsmaplayer.cpp +++ b/src/core/qgsmaplayer.cpp @@ -1093,16 +1093,16 @@ bool QgsMapLayer::mapTipsEnabled() const return mMapTipsEnabled; } -QgsDataProvider::ReadFlags QgsMapLayer::providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ) +Qgis::DataProviderReadFlags QgsMapLayer::providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ) { - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; if ( layerReadFlags & QgsMapLayer::FlagTrustLayerMetadata ) { - flags |= QgsDataProvider::FlagTrustDataSource; + flags |= Qgis::DataProviderReadFlag::TrustDataSource; } if ( layerReadFlags & QgsMapLayer::FlagForceReadOnly ) { - flags |= QgsDataProvider::ForceReadOnly; + flags |= Qgis::DataProviderReadFlag::ForceReadOnly; } if ( layerReadFlags & QgsMapLayer::FlagReadExtentFromXml ) @@ -1113,12 +1113,12 @@ QgsDataProvider::ReadFlags QgsMapLayer::providerReadFlags( const QDomNode &layer const QDomNode extentNode = layerNode.namedItem( QStringLiteral( "extent" ) ); if ( !extentNode.isNull() ) { - flags |= QgsDataProvider::SkipGetExtent; + flags |= Qgis::DataProviderReadFlag::SkipGetExtent; } } else { - flags |= QgsDataProvider::SkipGetExtent; + flags |= Qgis::DataProviderReadFlag::SkipGetExtent; } } @@ -2426,15 +2426,15 @@ void QgsMapLayer::setDataSource( const QString &dataSource, const QString &baseN const QgsDataProvider::ProviderOptions options; - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; if ( loadDefaultStyleFlag ) { - flags |= QgsDataProvider::FlagLoadDefaultStyle; + flags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } if ( mReadFlags & QgsMapLayer::FlagTrustLayerMetadata ) { - flags |= QgsDataProvider::FlagTrustDataSource; + flags |= Qgis::DataProviderReadFlag::TrustDataSource; } setDataSource( dataSource, baseName, provider, options, flags ); } @@ -2444,28 +2444,28 @@ void QgsMapLayer::setDataSource( const QString &dataSource, const QString &baseN { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; if ( loadDefaultStyleFlag ) { - flags |= QgsDataProvider::FlagLoadDefaultStyle; + flags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } if ( mReadFlags & QgsMapLayer::FlagTrustLayerMetadata ) { - flags |= QgsDataProvider::FlagTrustDataSource; + flags |= Qgis::DataProviderReadFlag::TrustDataSource; } setDataSource( dataSource, baseName, provider, options, flags ); } void QgsMapLayer::setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS if ( ( mReadFlags & QgsMapLayer::FlagTrustLayerMetadata ) && - !( flags & QgsDataProvider::FlagTrustDataSource ) ) + !( flags & Qgis::DataProviderReadFlag::TrustDataSource ) ) { - flags |= QgsDataProvider::FlagTrustDataSource; + flags |= Qgis::DataProviderReadFlag::TrustDataSource; } setDataSourcePrivate( dataSource, baseName, provider, options, flags ); emit dataSourceChanged(); @@ -2475,7 +2475,7 @@ void QgsMapLayer::setDataSource( const QString &dataSource, const QString &baseN void QgsMapLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS diff --git a/src/core/qgsmaplayer.h b/src/core/qgsmaplayer.h index ef351f3ee8a8..dd868e97ea72 100644 --- a/src/core/qgsmaplayer.h +++ b/src/core/qgsmaplayer.h @@ -1479,7 +1479,7 @@ class CORE_EXPORT QgsMapLayer : public QObject * \see dataSourceChanged() * \since QGIS 3.20 */ - void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ); + void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ); /** * Returns the provider type (provider key) for this layer @@ -1796,7 +1796,7 @@ class CORE_EXPORT QgsMapLayer : public QObject * * \since QGIS 3.32 */ - static QgsDataProvider::ReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); + static Qgis::DataProviderReadFlags providerReadFlags( const QDomNode &layerNode, QgsMapLayer::ReadFlags layerReadFlags ); public slots: @@ -2149,7 +2149,7 @@ class CORE_EXPORT QgsMapLayer : public QObject * \see dataSourceChanged() * \since QGIS 3.20 */ - virtual void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ); + virtual void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ); protected: diff --git a/src/core/qgspluginlayer.cpp b/src/core/qgspluginlayer.cpp index 73913165939a..962e4b98f0cb 100644 --- a/src/core/qgspluginlayer.cpp +++ b/src/core/qgspluginlayer.cpp @@ -18,7 +18,7 @@ QgsPluginLayer::QgsPluginLayer( const QString &layerType, const QString &layerNa : QgsMapLayer( Qgis::LayerType::Plugin, layerName ) , mPluginLayerType( layerType ) { - mDataProvider = new QgsPluginLayerDataProvider( layerType, QgsDataProvider::ProviderOptions(), QgsDataProvider::ReadFlags() ); + mDataProvider = new QgsPluginLayerDataProvider( layerType, QgsDataProvider::ProviderOptions(), Qgis::DataProviderReadFlags() ); } QgsPluginLayer::~QgsPluginLayer() @@ -61,7 +61,7 @@ const QgsDataProvider *QgsPluginLayer::dataProvider() const ///@cond PRIVATE QgsPluginLayerDataProvider::QgsPluginLayerDataProvider( const QString &layerType, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( QString(), options, flags ) , mName( layerType ) {} diff --git a/src/core/qgspluginlayer.h b/src/core/qgspluginlayer.h index 69b4abc3eb98..51d4d88525dc 100644 --- a/src/core/qgspluginlayer.h +++ b/src/core/qgspluginlayer.h @@ -82,7 +82,7 @@ class QgsPluginLayerDataProvider : public QgsDataProvider public: QgsPluginLayerDataProvider( const QString &layerType, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); void setExtent( const QgsRectangle &extent ) { mExtent = extent; } QgsCoordinateReferenceSystem crs() const override; QString name() const override; diff --git a/src/core/qgstransaction.cpp b/src/core/qgstransaction.cpp index bd4e4862bd17..fcdfab56ce11 100644 --- a/src/core/qgstransaction.cpp +++ b/src/core/qgstransaction.cpp @@ -202,7 +202,7 @@ bool QgsTransaction::rollback( QString &errorMsg ) bool QgsTransaction::supportsTransaction( const QgsVectorLayer *layer ) { //test if provider supports transactions - if ( !layer->dataProvider() || ( layer->dataProvider()->capabilities() & QgsVectorDataProvider::TransactionSupport ) == 0 ) + if ( !layer->dataProvider() || ( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::TransactionSupport ) == 0 ) return false; return true; diff --git a/src/core/raster/qgsrasterdataprovider.cpp b/src/core/raster/qgsrasterdataprovider.cpp index 09069c624b6d..06a0aaca0571 100644 --- a/src/core/raster/qgsrasterdataprovider.cpp +++ b/src/core/raster/qgsrasterdataprovider.cpp @@ -233,7 +233,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle const &b } QgsRasterDataProvider::QgsRasterDataProvider() - : QgsDataProvider( QString(), QgsDataProvider::ProviderOptions(), QgsDataProvider::ReadFlags() ) + : QgsDataProvider( QString(), QgsDataProvider::ProviderOptions(), Qgis::DataProviderReadFlags() ) , QgsRasterInterface( nullptr ) , mTemporalCapabilities( std::make_unique< QgsRasterDataProviderTemporalCapabilities >() ) , mElevationProperties( std::make_unique< QgsRasterDataProviderElevationProperties >() ) @@ -242,7 +242,7 @@ QgsRasterDataProvider::QgsRasterDataProvider() } QgsRasterDataProvider::QgsRasterDataProvider( const QString &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) , QgsRasterInterface( nullptr ) , mTemporalCapabilities( std::make_unique< QgsRasterDataProviderTemporalCapabilities >() ) diff --git a/src/core/raster/qgsrasterdataprovider.h b/src/core/raster/qgsrasterdataprovider.h index df990c39ed3d..47eeb7c1a6ef 100644 --- a/src/core/raster/qgsrasterdataprovider.h +++ b/src/core/raster/qgsrasterdataprovider.h @@ -103,7 +103,7 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast */ QgsRasterDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); QgsRasterDataProvider *clone() const override = 0; diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp index 33c0f6ee86b0..b9626b555ce0 100644 --- a/src/core/raster/qgsrasterlayer.cpp +++ b/src/core/raster/qgsrasterlayer.cpp @@ -136,10 +136,10 @@ QgsRasterLayer::QgsRasterLayer( const QString &uri, setProviderType( providerKey ); const QgsDataProvider::ProviderOptions providerOptions { options.transformContext }; - QgsDataProvider::ReadFlags providerFlags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags providerFlags; if ( options.loadDefaultStyle ) { - providerFlags |= QgsDataProvider::FlagLoadDefaultStyle; + providerFlags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } setDataSource( uri, baseName, providerKey, providerOptions, providerFlags ); @@ -707,7 +707,7 @@ void QgsRasterLayer::init() mLastViewPort.mHeight = 0; } -void QgsRasterLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +void QgsRasterLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -773,7 +773,7 @@ void QgsRasterLayer::setDataProvider( QString const &provider, const QgsDataProv mDataSource = mDataProvider->dataSourceUri(); } - if ( !( flags & QgsDataProvider::SkipGetExtent ) ) + if ( !( flags & Qgis::DataProviderReadFlag::SkipGetExtent ) ) { // get the extent const QgsRectangle mbr = mDataProvider->extent(); @@ -1040,7 +1040,7 @@ void QgsRasterLayer::setDataProvider( QString const &provider, const QgsDataProv } void QgsRasterLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -1051,7 +1051,7 @@ void QgsRasterLayer::setDataSourcePrivate( const QString &dataSource, const QStr QString errorMsg; bool loadDefaultStyleFlag = false; - if ( flags & QgsDataProvider::FlagLoadDefaultStyle ) + if ( flags & Qgis::DataProviderReadFlag::LoadDefaultStyle ) { loadDefaultStyleFlag = true; } @@ -2377,7 +2377,7 @@ bool QgsRasterLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &c if ( !( mReadFlags & QgsMapLayer::FlagDontResolveLayers ) ) { const QgsDataProvider::ProviderOptions providerOptions { context.transformContext() }; - QgsDataProvider::ReadFlags flags = providerReadFlags( layer_node, mReadFlags ); + Qgis::DataProviderReadFlags flags = providerReadFlags( layer_node, mReadFlags ); if ( mReadFlags & QgsMapLayer::FlagReadExtentFromXml ) { @@ -2668,10 +2668,10 @@ bool QgsRasterLayer::update() closeDataProvider(); init(); const QgsDataProvider::ProviderOptions providerOptions; - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; if ( mReadFlags & QgsMapLayer::FlagTrustLayerMetadata ) { - flags |= QgsDataProvider::FlagTrustDataSource; + flags |= Qgis::DataProviderReadFlag::TrustDataSource; } setDataProvider( mProviderKey, providerOptions, flags ); emit dataChanged(); diff --git a/src/core/raster/qgsrasterlayer.h b/src/core/raster/qgsrasterlayer.h index cb4a0ba2a3eb..538a9d7d04ef 100644 --- a/src/core/raster/qgsrasterlayer.h +++ b/src/core/raster/qgsrasterlayer.h @@ -211,7 +211,7 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer, public QgsAbstractProfile * \param flags provider flags since QGIS 3.16 * \since QGIS 3.2 */ - void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + void setDataProvider( const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /** * Returns the raster layer type (which is a read only property). @@ -545,7 +545,7 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer, public QgsAbstractProfile * \see dataSourceChanged() * \since QGIS 3.20 */ - void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override; + void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override; /** * Writes the paths to the external raster attribute table files associated with the raster bands. diff --git a/src/core/tiledscene/qgscesiumtilesdataprovider.cpp b/src/core/tiledscene/qgscesiumtilesdataprovider.cpp index ade6dd2c110d..0278dbe79020 100644 --- a/src/core/tiledscene/qgscesiumtilesdataprovider.cpp +++ b/src/core/tiledscene/qgscesiumtilesdataprovider.cpp @@ -893,7 +893,7 @@ void QgsCesiumTilesDataProviderSharedData::initialize( const QString &tileset, c // QgsCesiumTilesDataProvider // -QgsCesiumTilesDataProvider::QgsCesiumTilesDataProvider( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsCesiumTilesDataProvider::QgsCesiumTilesDataProvider( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsTiledSceneDataProvider( uri, providerOptions, flags ) , mShared( std::make_shared< QgsCesiumTilesDataProviderSharedData >() ) { @@ -1279,7 +1279,7 @@ QIcon QgsCesiumTilesProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconCesium3dTiles.svg" ) ); } -QgsCesiumTilesDataProvider *QgsCesiumTilesProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsCesiumTilesDataProvider *QgsCesiumTilesProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsCesiumTilesDataProvider( uri, options, flags ); } diff --git a/src/core/tiledscene/qgscesiumtilesdataprovider.h b/src/core/tiledscene/qgscesiumtilesdataprovider.h index 7cf50d658e14..f9d970c40d3e 100644 --- a/src/core/tiledscene/qgscesiumtilesdataprovider.h +++ b/src/core/tiledscene/qgscesiumtilesdataprovider.h @@ -41,7 +41,7 @@ class CORE_EXPORT QgsCesiumTilesDataProvider final: public QgsTiledSceneDataProv //! Constructor for QgsCesiumTilesDataProvider QgsCesiumTilesDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); QgsCesiumTilesDataProvider( const QgsCesiumTilesDataProvider &other ); QgsCesiumTilesDataProvider &operator=( const QgsCesiumTilesDataProvider &other ) = delete; @@ -83,7 +83,7 @@ class QgsCesiumTilesProviderMetadata : public QgsProviderMetadata QgsCesiumTilesProviderMetadata(); QIcon icon() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsCesiumTilesDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsCesiumTilesDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override; int priorityForUri( const QString &uri ) const override; QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override; diff --git a/src/core/tiledscene/qgstiledscenedataprovider.cpp b/src/core/tiledscene/qgstiledscenedataprovider.cpp index dbfd333be861..5c90e0a5d4d3 100644 --- a/src/core/tiledscene/qgstiledscenedataprovider.cpp +++ b/src/core/tiledscene/qgstiledscenedataprovider.cpp @@ -21,7 +21,7 @@ QgsTiledSceneDataProvider::QgsTiledSceneDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) { } diff --git a/src/core/tiledscene/qgstiledscenedataprovider.h b/src/core/tiledscene/qgstiledscenedataprovider.h index ecfb2fad9e71..be6599ec8fe8 100644 --- a/src/core/tiledscene/qgstiledscenedataprovider.h +++ b/src/core/tiledscene/qgstiledscenedataprovider.h @@ -41,7 +41,7 @@ class CORE_EXPORT QgsTiledSceneDataProvider: public QgsDataProvider //! Constructor for QgsTiledSceneDataProvider QgsTiledSceneDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsTiledSceneDataProvider() override; diff --git a/src/core/tiledscene/qgstiledscenelayer.cpp b/src/core/tiledscene/qgstiledscenelayer.cpp index c6750da3a8b9..c1682a6351de 100644 --- a/src/core/tiledscene/qgstiledscenelayer.cpp +++ b/src/core/tiledscene/qgstiledscenelayer.cpp @@ -40,10 +40,10 @@ QgsTiledSceneLayer::QgsTiledSceneLayer( const QString &uri, if ( !uri.isEmpty() && !provider.isEmpty() ) { const QgsDataProvider::ProviderOptions providerOptions { options.transformContext }; - QgsDataProvider::ReadFlags providerFlags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags providerFlags; if ( options.loadDefaultStyle ) { - providerFlags |= QgsDataProvider::FlagLoadDefaultStyle; + providerFlags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } setDataSource( uri, baseName, provider, providerOptions, providerFlags ); } @@ -172,7 +172,7 @@ bool QgsTiledSceneLayer::readXml( const QDomNode &layerNode, QgsReadWriteContext if ( !( mReadFlags & QgsMapLayer::FlagDontResolveLayers ) ) { const QgsDataProvider::ProviderOptions providerOptions { context.transformContext() }; - QgsDataProvider::ReadFlags flags = providerReadFlags( layerNode, mReadFlags ); + Qgis::DataProviderReadFlags flags = providerReadFlags( layerNode, mReadFlags ); // read extent if ( mReadFlags & QgsMapLayer::FlagReadExtentFromXml ) { @@ -365,7 +365,7 @@ void QgsTiledSceneLayer::setTransformContext( const QgsCoordinateTransformContex } void QgsTiledSceneLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -405,13 +405,13 @@ void QgsTiledSceneLayer::setDataSourcePrivate( const QString &dataSource, const // Load initial extent, crs and renderer setCrs( mDataProvider->crs() ); - if ( !( flags & QgsDataProvider::SkipGetExtent ) ) + if ( !( flags & Qgis::DataProviderReadFlag::SkipGetExtent ) ) { setExtent( mDataProvider->extent() ); } bool loadDefaultStyleFlag = false; - if ( flags & QgsDataProvider::FlagLoadDefaultStyle ) + if ( flags & Qgis::DataProviderReadFlag::LoadDefaultStyle ) { loadDefaultStyleFlag = true; } diff --git a/src/core/tiledscene/qgstiledscenelayer.h b/src/core/tiledscene/qgstiledscenelayer.h index 12219a7eaf89..002f62cf4942 100644 --- a/src/core/tiledscene/qgstiledscenelayer.h +++ b/src/core/tiledscene/qgstiledscenelayer.h @@ -142,7 +142,7 @@ class CORE_EXPORT QgsTiledSceneLayer : public QgsMapLayer void setRenderer( QgsTiledSceneRenderer *renderer SIP_TRANSFER ); private slots: - void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override; + void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override; private: diff --git a/src/core/vector/qgsvectordataprovider.cpp b/src/core/vector/qgsvectordataprovider.cpp index 4d5cc67784c7..ba7d78427d7e 100644 --- a/src/core/vector/qgsvectordataprovider.cpp +++ b/src/core/vector/qgsvectordataprovider.cpp @@ -15,8 +15,6 @@ #include -#include -#include #include #include "qgsvectordataprovider.h" @@ -38,7 +36,7 @@ #include "qgsdataproviderelevationproperties.h" QgsVectorDataProvider::QgsVectorDataProvider( const QString &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) , mTemporalCapabilities( std::make_unique< QgsVectorDataProviderTemporalCapabilities >() ) , mElevationProperties( std::make_unique< QgsDataProviderElevationProperties >() ) @@ -147,7 +145,7 @@ bool QgsVectorDataProvider::truncate() { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - if ( !( capabilities() & DeleteFeatures ) ) + if ( !( capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) return false; QgsFeatureIds toDelete; @@ -238,7 +236,7 @@ bool QgsVectorDataProvider::changeFeatures( const QgsChangedAttributesMap &attr_ { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - if ( !( capabilities() & ChangeAttributeValues ) || !( capabilities() & ChangeGeometries ) ) + if ( !( capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) || !( capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) ) return false; bool result = true; @@ -262,11 +260,11 @@ bool QgsVectorDataProvider::createAttributeIndex( int field ) return true; } -QgsVectorDataProvider::Capabilities QgsVectorDataProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsVectorDataProvider::capabilities() const { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - return QgsVectorDataProvider::NoCapabilities; + return Qgis::VectorProviderCapability::NoCapabilities; } void QgsVectorDataProvider::setEncoding( const QString &e ) @@ -326,85 +324,85 @@ QString QgsVectorDataProvider::capabilitiesString() const QStringList abilitiesList; - const int abilities = capabilities(); + const Qgis::VectorProviderCapabilities abilities = capabilities(); - if ( abilities & QgsVectorDataProvider::AddFeatures ) + if ( abilities & Qgis::VectorProviderCapability::AddFeatures ) { abilitiesList += tr( "Add Features" ); } - if ( abilities & QgsVectorDataProvider::DeleteFeatures ) + if ( abilities & Qgis::VectorProviderCapability::DeleteFeatures ) { abilitiesList += tr( "Delete Features" ); } - if ( abilities & QgsVectorDataProvider::ChangeAttributeValues ) + if ( abilities & Qgis::VectorProviderCapability::ChangeAttributeValues ) { abilitiesList += tr( "Change Attribute Values" ); } - if ( abilities & QgsVectorDataProvider::AddAttributes ) + if ( abilities & Qgis::VectorProviderCapability::AddAttributes ) { abilitiesList += tr( "Add Attributes" ); } - if ( abilities & QgsVectorDataProvider::DeleteAttributes ) + if ( abilities & Qgis::VectorProviderCapability::DeleteAttributes ) { abilitiesList += tr( "Delete Attributes" ); } - if ( abilities & QgsVectorDataProvider::RenameAttributes ) + if ( abilities & Qgis::VectorProviderCapability::RenameAttributes ) { abilitiesList += tr( "Rename Attributes" ); } - if ( abilities & QgsVectorDataProvider::CreateSpatialIndex ) + if ( abilities & Qgis::VectorProviderCapability::CreateSpatialIndex ) { // TODO: Tighten up this test. See QgsOgrProvider for details. abilitiesList += tr( "Create Spatial Index" ); } - if ( abilities & QgsVectorDataProvider::CreateAttributeIndex ) + if ( abilities & Qgis::VectorProviderCapability::CreateAttributeIndex ) { abilitiesList += tr( "Create Attribute Indexes" ); } - if ( abilities & QgsVectorDataProvider::SelectAtId ) + if ( abilities & Qgis::VectorProviderCapability::SelectAtId ) { abilitiesList += tr( "Fast Access to Features at ID" ); } - if ( abilities & QgsVectorDataProvider::ChangeGeometries ) + if ( abilities & Qgis::VectorProviderCapability::ChangeGeometries ) { abilitiesList += tr( "Change Geometries" ); } - if ( abilities & QgsVectorDataProvider::SimplifyGeometries ) + if ( abilities & Qgis::VectorProviderCapability::SimplifyGeometries ) { abilitiesList += tr( "Presimplify Geometries" ); } - if ( abilities & QgsVectorDataProvider::SimplifyGeometriesWithTopologicalValidation ) + if ( abilities & Qgis::VectorProviderCapability::SimplifyGeometriesWithTopologicalValidation ) { abilitiesList += tr( "Presimplify Geometries with Validity Check" ); } - if ( abilities & QgsVectorDataProvider::ChangeFeatures ) + if ( abilities & Qgis::VectorProviderCapability::ChangeFeatures ) { abilitiesList += tr( "Simultaneous Geometry and Attribute Updates" ); } - if ( abilities & QgsVectorDataProvider::TransactionSupport ) + if ( abilities & Qgis::VectorProviderCapability::TransactionSupport ) { abilitiesList += tr( "Transactions" ); } - if ( abilities & QgsVectorDataProvider::CircularGeometries ) + if ( abilities & Qgis::VectorProviderCapability::CircularGeometries ) { abilitiesList += tr( "Curved Geometries" ); } - if ( abilities & QgsVectorDataProvider::FeatureSymbology ) + if ( abilities & Qgis::VectorProviderCapability::FeatureSymbology ) { abilitiesList += tr( "Feature Symbology" ); } diff --git a/src/core/vector/qgsvectordataprovider.h b/src/core/vector/qgsvectordataprovider.h index e137e4a885dc..fb6d9c7565c1 100644 --- a/src/core/vector/qgsvectordataprovider.h +++ b/src/core/vector/qgsvectordataprovider.h @@ -64,46 +64,8 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider, public QgsFeat public: - // If you add to this, please also add to capabilitiesString() - - /** - * enumeration with capabilities that providers might implement - */ - enum Capability SIP_ENUM_BASETYPE( IntFlag ) - { - NoCapabilities = 0, //!< Provider has no capabilities - AddFeatures = 1, //!< Allows adding features - DeleteFeatures = 1 << 1, //!< Allows deletion of features - ChangeAttributeValues = 1 << 2, //!< Allows modification of attribute values - AddAttributes = 1 << 3, //!< Allows addition of new attributes (fields) - DeleteAttributes = 1 << 4, //!< Allows deletion of attributes (fields) - CreateSpatialIndex = 1 << 6, //!< Allows creation of spatial index - SelectAtId = 1 << 7, //!< Fast access to features using their ID - ChangeGeometries = 1 << 8, //!< Allows modifications of geometries - SelectEncoding = 1 << 13, //!< Allows user to select encoding - CreateAttributeIndex = 1 << 12, //!< Can create indexes on provider's fields - SimplifyGeometries = 1 << 14, //!< Supports simplification of geometries on provider side according to a distance tolerance - SimplifyGeometriesWithTopologicalValidation = 1 << 15, //!< Supports topological simplification of geometries on provider side according to a distance tolerance - TransactionSupport = 1 << 16, //!< Supports transactions - CircularGeometries = 1 << 17, //!< Supports circular geometry types (circularstring, compoundcurve, curvepolygon) - ChangeFeatures = 1 << 18, //!< Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues. - RenameAttributes = 1 << 19, //!< Supports renaming attributes (fields). Since QGIS 2.16 - FastTruncate = 1 << 20, //!< Supports fast truncation of the layer (removing all features). Since QGIS 3.0 - ReadLayerMetadata = 1 << 21, //!< Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider::layerMetadata() - WriteLayerMetadata = 1 << 22, //!< Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider::writeLayerMetadata() - CancelSupport = 1 << 23, //!< Supports interruption of pending queries from a separated thread. Since QGIS 3.2 - CreateRenderer = 1 << 24, //!< Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider::createRenderer(). - CreateLabeling = 1 << 25, //!< Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider::createLabeling(). - ReloadData = 1 << 26, //!< Provider is able to force reload data - FeatureSymbology = 1 << 27, //!< Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3.20. - }; - - Q_DECLARE_FLAGS( Capabilities, Capability ) - //! Bitmask of all provider's editing capabilities - static const int EditingCapabilities = AddFeatures | DeleteFeatures | - ChangeAttributeValues | ChangeGeometries | AddAttributes | DeleteAttributes | - RenameAttributes; + static const int EditingCapabilities = static_cast< int >( Qgis::VectorProviderCapability::EditingCapabilities ); /** * Constructor for a vector data provider. @@ -114,7 +76,7 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider, public QgsFeat */ QgsVectorDataProvider( const QString &uri = QString(), const QgsDataProvider::ProviderOptions &providerOptions = QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /** * Returns feature source object that can be used for querying provider's data. The returned feature source @@ -406,7 +368,7 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider, public QgsFeat * * \see attributeEditCapabilities() */ - Q_INVOKABLE virtual QgsVectorDataProvider::Capabilities capabilities() const; + Q_INVOKABLE virtual Qgis::VectorProviderCapabilities capabilities() const; /** * Returns the above in friendly format. @@ -739,6 +701,4 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider, public QgsFeat virtual void setTransaction( QgsTransaction * /*transaction*/ ) {} }; -Q_DECLARE_OPERATORS_FOR_FLAGS( QgsVectorDataProvider::Capabilities ) - #endif diff --git a/src/core/vector/qgsvectorlayer.cpp b/src/core/vector/qgsvectorlayer.cpp index 0e50945dc725..8c4740c89312 100644 --- a/src/core/vector/qgsvectorlayer.cpp +++ b/src/core/vector/qgsvectorlayer.cpp @@ -196,14 +196,14 @@ QgsVectorLayer::QgsVectorLayer( const QString &vectorLayerPath, if ( !vectorLayerPath.isEmpty() && !mProviderKey.isEmpty() ) { QgsDataProvider::ProviderOptions providerOptions { options.transformContext }; - QgsDataProvider::ReadFlags providerFlags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags providerFlags; if ( options.loadDefaultStyle ) { - providerFlags |= QgsDataProvider::FlagLoadDefaultStyle; + providerFlags |= Qgis::DataProviderReadFlag::LoadDefaultStyle; } if ( options.forceReadOnly ) { - providerFlags |= QgsDataProvider::ForceReadOnly; + providerFlags |= Qgis::DataProviderReadFlag::ForceReadOnly; mDataSourceReadOnly = true; } setDataSource( vectorLayerPath, baseName, providerKey, providerOptions, providerFlags ); @@ -839,7 +839,7 @@ QgsRectangle QgsVectorLayer::boundingBoxOfSelected() const retval.setNull(); QgsFeature fet; - if ( mDataProvider->capabilities() & QgsVectorDataProvider::SelectAtId ) + if ( mDataProvider->capabilities() & Qgis::VectorProviderCapability::SelectAtId ) { QgsFeatureIterator fit = getFeatures( QgsFeatureRequest() .setFilterFids( mSelectedFeatureIds ) @@ -1516,7 +1516,7 @@ bool QgsVectorLayer::deleteSelectedFeatures( int *deletedCount, QgsVectorLayer:: { QGIS_PROTECT_QOBJECT_THREAD_ACCESS - if ( !isValid() || !mDataProvider || !( mDataProvider->capabilities() & QgsVectorDataProvider::DeleteFeatures ) ) + if ( !isValid() || !mDataProvider || !( mDataProvider->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) { return false; } @@ -1926,7 +1926,7 @@ bool QgsVectorLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &c QgsDataProvider::ProviderOptions options { context.transformContext() }; mDataSourceReadOnly = mReadFlags & QgsMapLayer::FlagForceReadOnly; - QgsDataProvider::ReadFlags flags = providerReadFlags( layer_node, mReadFlags ); + Qgis::DataProviderReadFlags flags = providerReadFlags( layer_node, mReadFlags ); if ( ( mReadFlags & QgsMapLayer::FlagDontResolveLayers ) || !setDataProvider( mProviderKey, options, flags ) ) { @@ -2015,7 +2015,7 @@ bool QgsVectorLayer::readXml( const QDomNode &layer_node, QgsReadWriteContext &c void QgsVectorLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -2034,7 +2034,7 @@ void QgsVectorLayer::setDataSourcePrivate( const QString &dataSource, const QStr setCoordinateSystem(); bool loadDefaultStyleFlag = false; - if ( flags & QgsDataProvider::FlagLoadDefaultStyle ) + if ( flags & Qgis::DataProviderReadFlag::LoadDefaultStyle ) { loadDefaultStyleFlag = true; } @@ -2064,7 +2064,7 @@ void QgsVectorLayer::setDataSourcePrivate( const QString &dataSource, const QStr loadDefaultStyle( defaultLoadedFlag ); } - if ( loadDefaultStyleFlag && !defaultLoadedFlag && isSpatial() && mDataProvider->capabilities() & QgsVectorDataProvider::CreateRenderer ) + if ( loadDefaultStyleFlag && !defaultLoadedFlag && isSpatial() && mDataProvider->capabilities() & Qgis::VectorProviderCapability::CreateRenderer ) { // if we didn't load a default style for this layer, try to create a renderer directly from the data provider std::unique_ptr< QgsFeatureRenderer > defaultRenderer( mDataProvider->createRenderer() ); @@ -2085,7 +2085,7 @@ void QgsVectorLayer::setDataSourcePrivate( const QString &dataSource, const QStr if ( !mSetLegendFromStyle ) setLegend( QgsMapLayerLegend::defaultVectorLegend( this ) ); - if ( mDataProvider->capabilities() & QgsVectorDataProvider::CreateLabeling ) + if ( mDataProvider->capabilities() & Qgis::VectorProviderCapability::CreateLabeling ) { std::unique_ptr< QgsAbstractVectorLayerLabeling > defaultLabeling( mDataProvider->createLabeling() ); if ( defaultLabeling ) @@ -2139,7 +2139,7 @@ QString QgsVectorLayer::loadDefaultStyle( bool &resultFlag ) return styleXml ; } - if ( isSpatial() && mDataProvider->capabilities() & QgsVectorDataProvider::CreateRenderer ) + if ( isSpatial() && mDataProvider->capabilities() & Qgis::VectorProviderCapability::CreateRenderer ) { // otherwise try to create a renderer directly from the data provider std::unique_ptr< QgsFeatureRenderer > defaultRenderer( mDataProvider->createRenderer() ); @@ -2154,7 +2154,7 @@ QString QgsVectorLayer::loadDefaultStyle( bool &resultFlag ) return QString(); } -bool QgsVectorLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +bool QgsVectorLayer::setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -2207,7 +2207,7 @@ bool QgsVectorLayer::setDataProvider( QString const &provider, const QgsDataProv if ( profile ) profile->switchTask( tr( "Read layer metadata" ) ); - if ( mDataProvider->capabilities() & QgsVectorDataProvider::ReadLayerMetadata ) + if ( mDataProvider->capabilities() & Qgis::VectorProviderCapability::ReadLayerMetadata ) { // we combine the provider metadata with the layer's existing metadata, so as not to reset any user customizations to the metadata // back to the default if a layer's data source is changed diff --git a/src/core/vector/qgsvectorlayer.h b/src/core/vector/qgsvectorlayer.h index e0568d5faa7c..fdf4fc6919a5 100644 --- a/src/core/vector/qgsvectorlayer.h +++ b/src/core/vector/qgsvectorlayer.h @@ -2818,7 +2818,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte * \param options provider options * \param flags provider flags, since QGIS 3.16 */ - bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /** * Updates the data source of the layer. The layer's renderer and legend will be preserved only @@ -2831,7 +2831,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte * \see dataSourceChanged() * \since QGIS 3.20 */ - void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override; + void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override; //! Read labeling from SLD void readSldLabeling( const QDomNode &node ); diff --git a/src/core/vector/qgsvectorlayereditbuffer.cpp b/src/core/vector/qgsvectorlayereditbuffer.cpp index 68fdc4af6b70..d9187e62e781 100644 --- a/src/core/vector/qgsvectorlayereditbuffer.cpp +++ b/src/core/vector/qgsvectorlayereditbuffer.cpp @@ -131,7 +131,7 @@ void QgsVectorLayerEditBuffer::updateChangedAttributes( QgsFeature &f ) bool QgsVectorLayerEditBuffer::addFeature( QgsFeature &f ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) ) { return false; } @@ -150,7 +150,7 @@ bool QgsVectorLayerEditBuffer::addFeature( QgsFeature &f ) bool QgsVectorLayerEditBuffer::addFeatures( QgsFeatureList &features ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) ) return false; // we don't want to emit layerModified for every added feature, rather just once for the batch lot @@ -181,7 +181,7 @@ bool QgsVectorLayerEditBuffer::addFeatures( QgsFeatureList &features ) bool QgsVectorLayerEditBuffer::deleteFeature( QgsFeatureId fid ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) { QgsDebugError( QStringLiteral( "Cannot delete features (missing DeleteFeature capability)" ) ); return false; @@ -210,7 +210,7 @@ bool QgsVectorLayerEditBuffer::deleteFeature( QgsFeatureId fid ) bool QgsVectorLayerEditBuffer::deleteFeatures( const QgsFeatureIds &fids ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) ) { QgsDebugError( QStringLiteral( "Cannot delete features (missing DeleteFeatures capability)" ) ); return false; @@ -243,7 +243,7 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, const QgsGeomet if ( !mAddedFeatures.contains( fid ) ) return false; } - else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) ) + else if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) ) return false; // TODO: check compatible geometry @@ -285,7 +285,7 @@ bool QgsVectorLayerEditBuffer::changeAttributeValue( QgsFeatureId fid, int field if ( !mAddedFeatures.contains( fid ) ) return false; } - else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) ) + else if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) ) { return false; } @@ -302,7 +302,7 @@ bool QgsVectorLayerEditBuffer::changeAttributeValue( QgsFeatureId fid, int field bool QgsVectorLayerEditBuffer::addAttribute( const QgsField &field ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddAttributes ) ) return false; if ( field.name().isEmpty() ) @@ -325,7 +325,7 @@ bool QgsVectorLayerEditBuffer::addAttribute( const QgsField &field ) bool QgsVectorLayerEditBuffer::deleteAttribute( int index ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteAttributes ) ) return false; if ( index < 0 || index >= L->fields().count() ) @@ -347,7 +347,7 @@ bool QgsVectorLayerEditBuffer::deleteAttribute( int index ) bool QgsVectorLayerEditBuffer::renameAttribute( int index, const QString &newName ) { - if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::RenameAttributes ) ) + if ( !( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::RenameAttributes ) ) return false; if ( newName.isEmpty() ) @@ -605,7 +605,7 @@ bool QgsVectorLayerEditBuffer::commitChangesCheckGeometryTypeCompatibility( QStr if ( mAddedFeatures.isEmpty() ) return true; - if ( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures ) + if ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) { if ( L->dataProvider()->doesStrictFeatureTypeCheck() ) { @@ -639,7 +639,7 @@ bool QgsVectorLayerEditBuffer::commitChangesDeleteAttributes( bool &attributesDe if ( mDeletedAttributeIds.isEmpty() ) return true; - if ( ( L->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes ) && L->dataProvider()->deleteAttributes( qgis::listToSet( mDeletedAttributeIds ) ) ) + if ( ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteAttributes ) && L->dataProvider()->deleteAttributes( qgis::listToSet( mDeletedAttributeIds ) ) ) { commitErrors << tr( "SUCCESS: %n attribute(s) deleted.", "deleted attributes count", mDeletedAttributeIds.size() ); @@ -673,7 +673,7 @@ bool QgsVectorLayerEditBuffer::commitChangesRenameAttributes( bool &attributesRe if ( mRenamedAttributes.isEmpty() ) return true; - if ( ( L->dataProvider()->capabilities() & QgsVectorDataProvider::RenameAttributes ) && L->dataProvider()->renameAttributes( mRenamedAttributes ) ) + if ( ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::RenameAttributes ) && L->dataProvider()->renameAttributes( mRenamedAttributes ) ) { commitErrors << tr( "SUCCESS: %n attribute(s) renamed.", "renamed attributes count", mRenamedAttributes.size() ); @@ -698,7 +698,7 @@ bool QgsVectorLayerEditBuffer::commitChangesAddAttributes( bool &attributesAdded if ( mAddedAttributes.isEmpty() ) return true; - if ( ( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) && L->dataProvider()->addAttributes( mAddedAttributes ) ) + if ( ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddAttributes ) && L->dataProvider()->addAttributes( mAddedAttributes ) ) { commitErrors << tr( "SUCCESS: %n attribute(s) added.", "added attributes count", mAddedAttributes.size() ); emit committedAttributesAdded( L->id(), mAddedAttributes ); @@ -769,10 +769,10 @@ bool QgsVectorLayerEditBuffer::commitChangesChangeAttributes( bool &attributesCh { attributesChanged = false; - if ( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeFeatures && !mChangedGeometries.isEmpty() && !mChangedAttributeValues.isEmpty() ) + if ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeFeatures && !mChangedGeometries.isEmpty() && !mChangedAttributeValues.isEmpty() ) { // cppcheck-suppress assertWithSideEffect - Q_ASSERT( ( L->dataProvider()->capabilities() & ( QgsVectorDataProvider::ChangeAttributeValues | QgsVectorDataProvider::ChangeGeometries ) ) == ( QgsVectorDataProvider::ChangeAttributeValues | QgsVectorDataProvider::ChangeGeometries ) ); + Q_ASSERT( ( L->dataProvider()->capabilities() & ( Qgis::VectorProviderCapability::ChangeAttributeValues | Qgis::VectorProviderCapability::ChangeGeometries ) ) == ( Qgis::VectorProviderCapability::ChangeAttributeValues | Qgis::VectorProviderCapability::ChangeGeometries ) ); if ( L->dataProvider()->changeFeatures( mChangedAttributeValues, mChangedGeometries ) ) { @@ -793,8 +793,8 @@ bool QgsVectorLayerEditBuffer::commitChangesChangeAttributes( bool &attributesCh if ( !mChangedGeometries.isEmpty() ) { - if ( ! L->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::ChangeFeatures ) - && ! L->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::ChangeGeometries ) ) + if ( ! L->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeFeatures ) + && ! L->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeGeometries ) ) { commitErrors << tr( "ERROR: %1 geometries not changed. Data provider '%2' does not have ChangeFeatures or ChangeGeometries capabilities", "not changed geometries count" ) .arg( mChangedGeometries.size() ) @@ -818,8 +818,8 @@ bool QgsVectorLayerEditBuffer::commitChangesChangeAttributes( bool &attributesCh if ( !mChangedAttributeValues.isEmpty() ) { - if ( ! L->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::ChangeFeatures ) - && ! L->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::ChangeAttributeValues ) ) + if ( ! L->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeFeatures ) + && ! L->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeAttributeValues ) ) { commitErrors << tr( "ERROR: %1 attribute value change(s) not applied. Data provider '%2' does not have ChangeFeatures or ChangeAttributeValues capabilities", "not changed attribute values count" ) .arg( mChangedAttributeValues.size() ) @@ -866,7 +866,7 @@ bool QgsVectorLayerEditBuffer::commitChangesDeleteFeatures( bool &featuresDelete if ( mDeletedFeatureIds.isEmpty() ) return true; - if ( ( L->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures ) && L->dataProvider()->deleteFeatures( mDeletedFeatureIds ) ) + if ( ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) && L->dataProvider()->deleteFeatures( mDeletedFeatureIds ) ) { commitErrors << tr( "SUCCESS: %n feature(s) deleted.", "deleted features count", mDeletedFeatureIds.size() ); featuresDeleted = true; @@ -906,7 +906,7 @@ bool QgsVectorLayerEditBuffer::commitChangesAddFeatures( bool &featuresAdded, QS if ( mAddedFeatures.isEmpty() ) return true; - if ( L->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures ) + if ( L->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) { QList ids; QgsFeatureList featuresToAdd; diff --git a/src/core/vector/qgsvectorlayerexporter.cpp b/src/core/vector/qgsvectorlayerexporter.cpp index d11d638bd3ae..9c374eaf2181 100644 --- a/src/core/vector/qgsvectorlayerexporter.cpp +++ b/src/core/vector/qgsvectorlayerexporter.cpp @@ -149,7 +149,7 @@ QgsVectorLayerExporter::QgsVectorLayerExporter( const QString &uri, const QgsDataProvider::ProviderOptions providerOptions; QgsVectorDataProvider *vectorProvider = qobject_cast< QgsVectorDataProvider * >( pReg->createProvider( providerKey, uriUpdated, providerOptions ) ); - if ( !vectorProvider || !vectorProvider->isValid() || ( vectorProvider->capabilities() & QgsVectorDataProvider::AddFeatures ) == 0 ) + if ( !vectorProvider || !vectorProvider->isValid() || ( vectorProvider->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) == 0 ) { mError = Qgis::VectorExportResult::ErrorInvalidLayer; mErrorMessage = QObject::tr( "Loading of layer failed" ); @@ -285,7 +285,7 @@ bool QgsVectorLayerExporter::flushBuffer() bool QgsVectorLayerExporter::createSpatialIndex() { mCreateSpatialIndex = false; - if ( mProvider && ( mProvider->capabilities() & QgsVectorDataProvider::CreateSpatialIndex ) != 0 ) + if ( mProvider && ( mProvider->capabilities() & Qgis::VectorProviderCapability::CreateSpatialIndex ) != 0 ) { return mProvider->createSpatialIndex(); } diff --git a/src/core/vector/qgsvectorlayerutils.cpp b/src/core/vector/qgsvectorlayerutils.cpp index 24cd4b62f6d3..4ea5652898d0 100644 --- a/src/core/vector/qgsvectorlayerutils.cpp +++ b/src/core/vector/qgsvectorlayerutils.cpp @@ -891,8 +891,8 @@ bool _fieldIsEditable( const QgsVectorLayer *layer, int fieldIndex, const QgsFea !layer->editFormConfig().readOnly( fieldIndex ) && // Provider permissions layer->dataProvider() && - ( ( layer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) || - ( layer->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures && ( FID_IS_NULL( feature.id() ) || FID_IS_NEW( feature.id() ) ) ) ) && + ( ( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) || + ( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures && ( FID_IS_NULL( feature.id() ) || FID_IS_NEW( feature.id() ) ) ) ) && // Field must not be read only !layer->fields().at( fieldIndex ).isReadOnly(); } @@ -915,8 +915,8 @@ bool QgsVectorLayerUtils::fieldIsReadOnly( const QgsVectorLayer *layer, int fiel if ( !layer->isEditable() || layer->editFormConfig().readOnly( fieldIndex ) || !layer->dataProvider() || - ( !( layer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) - && !( layer->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures ) ) || + ( !( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) + && !( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) ) || layer->fields().at( fieldIndex ).isReadOnly() ) return true; diff --git a/src/core/vectortile/qgsarcgisvectortileservicedataprovider.cpp b/src/core/vectortile/qgsarcgisvectortileservicedataprovider.cpp index e2cee18f6573..f9b5fe0f5238 100644 --- a/src/core/vectortile/qgsarcgisvectortileservicedataprovider.cpp +++ b/src/core/vectortile/qgsarcgisvectortileservicedataprovider.cpp @@ -17,7 +17,6 @@ #include "qgsthreadingutils.h" #include "qgsapplication.h" #include "qgsblockingnetworkrequest.h" -#include "qgsnetworkaccessmanager.h" #include "qgssetrequestinitiator_p.h" #include "qgsvectortileutils.h" #include "qgsarcgisrestutils.h" @@ -37,7 +36,7 @@ QString QgsArcGisVectorTileServiceDataProvider::ARCGIS_VT_SERVICE_DATA_PROVIDER_ QString QgsArcGisVectorTileServiceDataProvider::ARCGIS_VT_SERVICE_DATA_PROVIDER_DESCRIPTION = QObject::tr( "ArcGIS Vector Tile Service data provider" ); -QgsArcGisVectorTileServiceDataProvider::QgsArcGisVectorTileServiceDataProvider( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsArcGisVectorTileServiceDataProvider::QgsArcGisVectorTileServiceDataProvider( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsXyzVectorTileDataProviderBase( uri, providerOptions, flags ) { mIsValid = setupArcgisVectorTileServiceConnection(); @@ -389,7 +388,7 @@ QgsProviderMetadata::ProviderCapabilities QgsArcGisVectorTileServiceDataProvider return QgsProviderMetadata::ProviderCapabilities(); } -QgsArcGisVectorTileServiceDataProvider *QgsArcGisVectorTileServiceDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsArcGisVectorTileServiceDataProvider *QgsArcGisVectorTileServiceDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsArcGisVectorTileServiceDataProvider( uri, options, flags ); } diff --git a/src/core/vectortile/qgsarcgisvectortileservicedataprovider.h b/src/core/vectortile/qgsarcgisvectortileservicedataprovider.h index 2603055ea4c7..9b7a281a73d8 100644 --- a/src/core/vectortile/qgsarcgisvectortileservicedataprovider.h +++ b/src/core/vectortile/qgsarcgisvectortileservicedataprovider.h @@ -32,7 +32,7 @@ class CORE_EXPORT QgsArcGisVectorTileServiceDataProvider : public QgsXyzVectorTi public: QgsArcGisVectorTileServiceDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsArcGisVectorTileServiceDataProvider( const QgsArcGisVectorTileServiceDataProvider &other ); @@ -87,7 +87,7 @@ class QgsArcGisVectorTileServiceDataProviderMetadata : public QgsProviderMetadat QgsArcGisVectorTileServiceDataProviderMetadata(); QIcon icon() const override; ProviderCapabilities providerCapabilities() const override; - QgsArcGisVectorTileServiceDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsArcGisVectorTileServiceDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; diff --git a/src/core/vectortile/qgsmbtilesvectortiledataprovider.cpp b/src/core/vectortile/qgsmbtilesvectortiledataprovider.cpp index 11a37b0981f4..78df391e426c 100644 --- a/src/core/vectortile/qgsmbtilesvectortiledataprovider.cpp +++ b/src/core/vectortile/qgsmbtilesvectortiledataprovider.cpp @@ -33,7 +33,7 @@ QString QgsMbTilesVectorTileDataProvider::MB_TILES_VECTOR_TILE_DATA_PROVIDER_KEY = QStringLiteral( "mbtilesvectortiles" ); QString QgsMbTilesVectorTileDataProvider::MB_TILES_VECTOR_TILE_DATA_PROVIDER_DESCRIPTION = QObject::tr( "MBTile Vector Tiles data provider" ); -QgsMbTilesVectorTileDataProvider::QgsMbTilesVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsMbTilesVectorTileDataProvider::QgsMbTilesVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsVectorTileDataProvider( uri, providerOptions, flags ) { QgsDataSourceUri dsUri; @@ -235,7 +235,7 @@ QgsProviderMetadata::ProviderMetadataCapabilities QgsMbTilesVectorTileDataProvid | ProviderMetadataCapability::QuerySublayers; } -QgsMbTilesVectorTileDataProvider *QgsMbTilesVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsMbTilesVectorTileDataProvider *QgsMbTilesVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsMbTilesVectorTileDataProvider( uri, options, flags ); } diff --git a/src/core/vectortile/qgsmbtilesvectortiledataprovider.h b/src/core/vectortile/qgsmbtilesvectortiledataprovider.h index 18668e70250c..a58940ae6e14 100644 --- a/src/core/vectortile/qgsmbtilesvectortiledataprovider.h +++ b/src/core/vectortile/qgsmbtilesvectortiledataprovider.h @@ -35,7 +35,7 @@ class CORE_EXPORT QgsMbTilesVectorTileDataProvider : public QgsVectorTileDataPro public: QgsMbTilesVectorTileDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsMbTilesVectorTileDataProvider( const QgsMbTilesVectorTileDataProvider &other ); @@ -75,7 +75,7 @@ class QgsMbTilesVectorTileDataProviderMetadata : public QgsProviderMetadata public: QgsMbTilesVectorTileDataProviderMetadata(); QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsMbTilesVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsMbTilesVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QIcon icon() const override; ProviderCapabilities providerCapabilities() const override; QString filters( Qgis::FileFilterType type ) override; diff --git a/src/core/vectortile/qgsvectortiledataprovider.cpp b/src/core/vectortile/qgsvectortiledataprovider.cpp index 0d2a226a747f..6bd32a89837a 100644 --- a/src/core/vectortile/qgsvectortiledataprovider.cpp +++ b/src/core/vectortile/qgsvectortiledataprovider.cpp @@ -15,7 +15,6 @@ #include "qgsvectortiledataprovider.h" #include "qgsthreadingutils.h" -#include "qgsreadwritelocker.h" #include "qgsvectortileloader.h" #include @@ -24,7 +23,7 @@ QgsVectorTileDataProvider::QgsVectorTileDataProvider( const QString &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsDataProvider( uri, options, flags ) , mShared( new QgsVectorTileDataProviderSharedData ) {} diff --git a/src/core/vectortile/qgsvectortiledataprovider.h b/src/core/vectortile/qgsvectortiledataprovider.h index a5c0aa12af2a..0b5b906904d3 100644 --- a/src/core/vectortile/qgsvectortiledataprovider.h +++ b/src/core/vectortile/qgsvectortiledataprovider.h @@ -82,7 +82,7 @@ class CORE_EXPORT QgsVectorTileDataProvider : public QgsDataProvider */ QgsVectorTileDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); /** * Copy constructor. diff --git a/src/core/vectortile/qgsvectortilelayer.cpp b/src/core/vectortile/qgsvectortilelayer.cpp index 35a1c84e0bde..f44405674e10 100644 --- a/src/core/vectortile/qgsvectortilelayer.cpp +++ b/src/core/vectortile/qgsvectortilelayer.cpp @@ -22,7 +22,6 @@ #include "qgsvectortilelabeling.h" #include "qgsvectortileloader.h" #include "qgsvectortileutils.h" -#include "qgsnetworkaccessmanager.h" #include "qgssetrequestinitiator_p.h" #include "qgsdatasourceuri.h" #include "qgslayermetadataformatter.h" @@ -58,7 +57,7 @@ QgsVectorTileLayer::QgsVectorTileLayer( const QString &uri, const QString &baseN connect( this, &QgsVectorTileLayer::selectionChanged, this, [this] { triggerRepaint(); } ); } -void QgsVectorTileLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &, const QgsDataProvider::ProviderOptions &, QgsDataProvider::ReadFlags ) +void QgsVectorTileLayer::setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &, const QgsDataProvider::ProviderOptions &, Qgis::DataProviderReadFlags ) { QGIS_PROTECT_QOBJECT_THREAD_ACCESS @@ -79,7 +78,7 @@ bool QgsVectorTileLayer::loadDataSource() setCrs( QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:3857" ) ) ); const QgsDataProvider::ProviderOptions providerOptions { mTransformContext }; - const QgsDataProvider::ReadFlags flags; + const Qgis::DataProviderReadFlags flags; mSourceType = dsUri.param( QStringLiteral( "type" ) ); QString providerKey; diff --git a/src/core/vectortile/qgsvectortilelayer.h b/src/core/vectortile/qgsvectortilelayer.h index 5bbd39c56836..96fffdded49f 100644 --- a/src/core/vectortile/qgsvectortilelayer.h +++ b/src/core/vectortile/qgsvectortilelayer.h @@ -326,7 +326,7 @@ class CORE_EXPORT QgsVectorTileLayer : public QgsMapLayer QHash< QgsFeatureId, QgsFeature > mSelectedFeatures; void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, - const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override; + const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override; bool loadDefaultStyleAndSubLayersPrivate( QString &error, QStringList &warnings, QList< QgsMapLayer * > *subLayers ); diff --git a/src/core/vectortile/qgsvtpkvectortiledataprovider.cpp b/src/core/vectortile/qgsvtpkvectortiledataprovider.cpp index 897dcafcb2ba..539ea7f32eca 100644 --- a/src/core/vectortile/qgsvtpkvectortiledataprovider.cpp +++ b/src/core/vectortile/qgsvtpkvectortiledataprovider.cpp @@ -32,7 +32,7 @@ QString QgsVtpkVectorTileDataProvider::DATA_PROVIDER_KEY = QStringLiteral( "vtpk QString QgsVtpkVectorTileDataProvider::DATA_PROVIDER_DESCRIPTION = QObject::tr( "VTPK Vector Tiles data provider" ); -QgsVtpkVectorTileDataProvider::QgsVtpkVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsVtpkVectorTileDataProvider::QgsVtpkVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsVectorTileDataProvider( uri, providerOptions, flags ) { QgsDataSourceUri dsUri; @@ -305,7 +305,7 @@ QgsProviderMetadata::ProviderMetadataCapabilities QgsVtpkVectorTileDataProviderM | ProviderMetadataCapability::QuerySublayers; } -QgsVtpkVectorTileDataProvider *QgsVtpkVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsVtpkVectorTileDataProvider *QgsVtpkVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsVtpkVectorTileDataProvider( uri, options, flags ); } diff --git a/src/core/vectortile/qgsvtpkvectortiledataprovider.h b/src/core/vectortile/qgsvtpkvectortiledataprovider.h index c1ae72be8d5c..10d97bc79b95 100644 --- a/src/core/vectortile/qgsvtpkvectortiledataprovider.h +++ b/src/core/vectortile/qgsvtpkvectortiledataprovider.h @@ -37,7 +37,7 @@ class CORE_EXPORT QgsVtpkVectorTileDataProvider : public QgsVectorTileDataProvid public: QgsVtpkVectorTileDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsVtpkVectorTileDataProvider( const QgsVtpkVectorTileDataProvider &other ); /** @@ -89,7 +89,7 @@ class QgsVtpkVectorTileDataProviderMetadata : public QgsProviderMetadata public: QgsVtpkVectorTileDataProviderMetadata(); QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsVtpkVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsVtpkVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QIcon icon() const override; ProviderCapabilities providerCapabilities() const override; QString filters( Qgis::FileFilterType type ) override; diff --git a/src/core/vectortile/qgsxyzvectortiledataprovider.cpp b/src/core/vectortile/qgsxyzvectortiledataprovider.cpp index 543441fc2963..29c835c98191 100644 --- a/src/core/vectortile/qgsxyzvectortiledataprovider.cpp +++ b/src/core/vectortile/qgsxyzvectortiledataprovider.cpp @@ -37,7 +37,7 @@ QString QgsXyzVectorTileDataProvider::XYZ_DATA_PROVIDER_DESCRIPTION = QObject::t // QgsXyzVectorTileDataProviderBase // -QgsXyzVectorTileDataProviderBase::QgsXyzVectorTileDataProviderBase( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsXyzVectorTileDataProviderBase::QgsXyzVectorTileDataProviderBase( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsVectorTileDataProvider( uri, providerOptions, flags ) { QgsDataSourceUri dsUri; @@ -175,7 +175,7 @@ QgsXyzVectorTileDataProviderMetadata::QgsXyzVectorTileDataProviderMetadata() { } -QgsXyzVectorTileDataProvider *QgsXyzVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsXyzVectorTileDataProvider *QgsXyzVectorTileDataProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsXyzVectorTileDataProvider( uri, options, flags ); } @@ -297,7 +297,7 @@ QList QgsXyzVectorTileDataProviderMetadata::supportedLayerTypes // QgsXyzVectorTileDataProvider // -QgsXyzVectorTileDataProvider::QgsXyzVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, ReadFlags flags ) +QgsXyzVectorTileDataProvider::QgsXyzVectorTileDataProvider( const QString &uri, const ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsXyzVectorTileDataProviderBase( uri, providerOptions, flags ) { QgsDataSourceUri dsUri; diff --git a/src/core/vectortile/qgsxyzvectortiledataprovider.h b/src/core/vectortile/qgsxyzvectortiledataprovider.h index 2031c929feef..438d8ccb6075 100644 --- a/src/core/vectortile/qgsxyzvectortiledataprovider.h +++ b/src/core/vectortile/qgsxyzvectortiledataprovider.h @@ -33,7 +33,7 @@ class CORE_EXPORT QgsXyzVectorTileDataProviderBase : public QgsVectorTileDataPro public: QgsXyzVectorTileDataProviderBase( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsXyzVectorTileDataProviderBase( const QgsXyzVectorTileDataProviderBase &other ); /** @@ -71,7 +71,7 @@ class CORE_EXPORT QgsXyzVectorTileDataProvider : public QgsXyzVectorTileDataProv public: QgsXyzVectorTileDataProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags ); + Qgis::DataProviderReadFlags flags ); QgsXyzVectorTileDataProvider( const QgsXyzVectorTileDataProvider &other ); /** @@ -116,7 +116,7 @@ class QgsXyzVectorTileDataProviderMetadata : public QgsProviderMetadata Q_OBJECT public: QgsXyzVectorTileDataProviderMetadata(); - QgsXyzVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsXyzVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QIcon icon() const override; ProviderCapabilities providerCapabilities() const override; QVariantMap decodeUri( const QString &uri ) const override; diff --git a/src/gui/attributetable/qgsdualview.cpp b/src/gui/attributetable/qgsdualview.cpp index 269138b118a4..6211b226c8a3 100644 --- a/src/gui/attributetable/qgsdualview.cpp +++ b/src/gui/attributetable/qgsdualview.cpp @@ -442,7 +442,7 @@ void QgsDualView::initLayerCache( bool cacheGeometry ) mLayerCache = new QgsVectorLayerCache( mLayer, cacheSize, this ); mLayerCache->setCacheSubsetOfAttributes( requiredAttributes( mLayer ) ); mLayerCache->setCacheGeometry( cacheGeometry ); - if ( 0 == cacheSize || 0 == ( QgsVectorDataProvider::SelectAtId & mLayer->dataProvider()->capabilities() ) ) + if ( 0 == cacheSize || !mLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::SelectAtId ) ) { connect( mLayerCache, &QgsVectorLayerCache::invalidated, this, &QgsDualView::rebuildFullLayerCache ); rebuildFullLayerCache(); diff --git a/src/gui/maptools/qgsmaptoolcapturelayergeometry.cpp b/src/gui/maptools/qgsmaptoolcapturelayergeometry.cpp index 7fd9f7f0ca1a..3c535a48596c 100644 --- a/src/gui/maptools/qgsmaptoolcapturelayergeometry.cpp +++ b/src/gui/maptools/qgsmaptoolcapturelayergeometry.cpp @@ -39,7 +39,7 @@ void QgsMapToolCaptureLayerGeometry::geometryCaptured( const QgsGeometry &geomet case QgsMapToolCapture::CapturePolygon: //does provider support circular strings? const bool datasetIsCurved = QgsWkbTypes::isCurvedType( vlayer->wkbType() ); - const bool providerSupportsCurvedSegments = vlayer && ( vlayer->dataProvider()->capabilities() & QgsVectorDataProvider::CircularGeometries ); + const bool providerSupportsCurvedSegments = vlayer && ( vlayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::CircularGeometries ); if ( !datasetIsCurved || !providerSupportsCurvedSegments ) g = QgsGeometry( g.constGet()->segmentize() ); diff --git a/src/gui/qgsmaptoolcapture.cpp b/src/gui/qgsmaptoolcapture.cpp index e1044acb0825..66cf52e0f5fd 100644 --- a/src/gui/qgsmaptoolcapture.cpp +++ b/src/gui/qgsmaptoolcapture.cpp @@ -326,7 +326,7 @@ bool QgsMapToolCapture::tracingAddVertex( const QgsPointXY &point ) { // If the tool and the layer support curves QgsVectorLayer *vlayer = qobject_cast( layer() ); - if ( vlayer && capabilities().testFlag( QgsMapToolCapture::Capability::SupportsCurves ) && vlayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::CircularGeometries ) ) + if ( vlayer && capabilities().testFlag( QgsMapToolCapture::Capability::SupportsCurves ) && vlayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::CircularGeometries ) ) { const QgsGeometry linear = QgsGeometry( mCaptureCurve.segmentize() ); const QgsGeometry curved = linear.convertToCurves( @@ -1399,7 +1399,7 @@ void QgsMapToolCapture::cadCanvasReleaseEvent( QgsMapMouseEvent *e ) if ( QgsVectorLayer *vlayer = qobject_cast( layer() ) ) { const bool hasCurvedSegments = captureCurve()->hasCurvedSegments(); - const bool providerSupportsCurvedSegments = vlayer->dataProvider()->capabilities() & QgsVectorDataProvider::CircularGeometries; + const bool providerSupportsCurvedSegments = vlayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::CircularGeometries; if ( hasCurvedSegments && providerSupportsCurvedSegments ) { diff --git a/src/gui/qgsmaptooldigitizefeature.cpp b/src/gui/qgsmaptooldigitizefeature.cpp index a50ca56f4963..84d8ac0680d4 100644 --- a/src/gui/qgsmaptooldigitizefeature.cpp +++ b/src/gui/qgsmaptooldigitizefeature.cpp @@ -166,7 +166,7 @@ void QgsMapToolDigitizeFeature::cadCanvasReleaseEvent( QgsMapMouseEvent *e ) QgsVectorDataProvider *provider = vlayer->dataProvider(); - if ( !( provider->capabilities() & QgsVectorDataProvider::AddFeatures ) ) + if ( !( provider->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) ) { emit messageEmitted( tr( "The data provider for this layer does not support the addition of features." ), Qgis::MessageLevel::Warning ); return; diff --git a/src/gui/qgsmaptoolidentify.cpp b/src/gui/qgsmaptoolidentify.cpp index f0a9b0c77cee..2953cdbc4ee1 100644 --- a/src/gui/qgsmaptoolidentify.cpp +++ b/src/gui/qgsmaptoolidentify.cpp @@ -597,7 +597,7 @@ bool QgsMapToolIdentify::identifyVectorLayer( QList( layer->temporalProperties() )->createFilterString( temporalContext, identifyContext.temporalRange() ); } - const bool fetchFeatureSymbols = layer->dataProvider()->capabilities() & QgsVectorDataProvider::FeatureSymbology; + const bool fetchFeatureSymbols = layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::FeatureSymbology; QApplication::setOverrideCursor( Qt::WaitCursor ); diff --git a/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp b/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp index c09d44a9c9de..6a850ba4a06e 100644 --- a/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp +++ b/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp @@ -34,7 +34,7 @@ QgsEmbeddedSymbolRendererWidget::QgsEmbeddedSymbolRendererWidget( QgsVectorLayer const Qgis::GeometryType type = QgsWkbTypes::geometryType( layer->wkbType() ); // the renderer only applies to layers with providers supporting embedded symbols - if ( !( layer->dataProvider()->capabilities() & QgsVectorDataProvider::FeatureSymbology ) ) + if ( !( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::FeatureSymbology ) ) { //setup blank dialog mRenderer.reset( nullptr ); diff --git a/src/gui/vector/qgsfieldcalculator.cpp b/src/gui/vector/qgsfieldcalculator.cpp index 51552a6d732b..263f579828ad 100644 --- a/src/gui/vector/qgsfieldcalculator.cpp +++ b/src/gui/vector/qgsfieldcalculator.cpp @@ -63,9 +63,9 @@ QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer *vl, QWidget *parent ) if ( !dataProvider ) return; - const QgsVectorDataProvider::Capabilities caps = dataProvider->capabilities(); - mCanAddAttribute = caps & QgsVectorDataProvider::AddAttributes; - mCanChangeAttributeValue = caps & QgsVectorDataProvider::ChangeAttributeValues; + const Qgis::VectorProviderCapabilities caps = dataProvider->capabilities(); + mCanAddAttribute = caps & Qgis::VectorProviderCapability::AddAttributes; + mCanChangeAttributeValue = caps & Qgis::VectorProviderCapability::ChangeAttributeValues; QgsExpressionContext expContext( QgsExpressionContextUtils::globalProjectLayerScopes( mVectorLayer ) ); diff --git a/src/gui/vector/qgsjoindialog.cpp b/src/gui/vector/qgsjoindialog.cpp index 4c38356973f4..1b240a58e7e9 100644 --- a/src/gui/vector/qgsjoindialog.cpp +++ b/src/gui/vector/qgsjoindialog.cpp @@ -190,7 +190,7 @@ void QgsJoinDialog::joinedLayerChanged( QgsMapLayer *layer ) mJoinFieldsSubsetView->setModel( subsetModel ); QgsVectorDataProvider *dp = vLayer->dataProvider(); - const bool canCreateAttrIndex = dp && ( dp->capabilities() & QgsVectorDataProvider::CreateAttributeIndex ); + const bool canCreateAttrIndex = dp && ( dp->capabilities() & Qgis::VectorProviderCapability::CreateAttributeIndex ); if ( canCreateAttrIndex ) { mCreateIndexCheckBox->setEnabled( true ); diff --git a/src/gui/vector/qgssourcefieldsproperties.cpp b/src/gui/vector/qgssourcefieldsproperties.cpp index 6a3760970aee..0ec81154e1d9 100644 --- a/src/gui/vector/qgssourcefieldsproperties.cpp +++ b/src/gui/vector/qgssourcefieldsproperties.cpp @@ -107,7 +107,7 @@ void QgsSourceFieldsProperties::loadRows() void QgsSourceFieldsProperties::updateFieldRenamingStatus() { - const bool canRenameFields = mLayer->isEditable() && ( mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::RenameAttributes ) && !mLayer->readOnly(); + const bool canRenameFields = mLayer->isEditable() && ( mLayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::RenameAttributes ) && !mLayer->readOnly(); for ( int row = 0; row < mFieldsList->rowCount(); ++row ) { @@ -250,7 +250,7 @@ void QgsSourceFieldsProperties::setRow( int row, int idx, const QgsField &field if ( notEditableCols[i] == AttrAliasCol ) mFieldsList->item( row, i )->setToolTip( tr( "Edit alias in the Form config tab" ) ); } - const bool canRenameFields = mLayer->isEditable() && ( mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::RenameAttributes ) && !mLayer->readOnly(); + const bool canRenameFields = mLayer->isEditable() && ( mLayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::RenameAttributes ) && !mLayer->readOnly(); if ( canRenameFields ) mFieldsList->item( row, AttrNameCol )->setFlags( mFieldsList->item( row, AttrNameCol )->flags() | Qt::ItemIsEditable ); else @@ -420,14 +420,14 @@ void QgsSourceFieldsProperties::updateButtons() QgsVectorDataProvider *provider = mLayer->dataProvider(); if ( !provider ) return; - const QgsVectorDataProvider::Capabilities cap = provider->capabilities(); + const Qgis::VectorProviderCapabilities cap = provider->capabilities(); - mToggleEditingButton->setEnabled( ( cap & QgsVectorDataProvider::ChangeAttributeValues ) && !mLayer->readOnly() ); + mToggleEditingButton->setEnabled( ( cap & Qgis::VectorProviderCapability::ChangeAttributeValues ) && !mLayer->readOnly() ); if ( mLayer->isEditable() ) { - mDeleteAttributeButton->setEnabled( cap & QgsVectorDataProvider::DeleteAttributes ); - mAddAttributeButton->setEnabled( cap & QgsVectorDataProvider::AddAttributes ); + mDeleteAttributeButton->setEnabled( cap & Qgis::VectorProviderCapability::DeleteAttributes ); + mAddAttributeButton->setEnabled( cap & Qgis::VectorProviderCapability::AddAttributes ); mToggleEditingButton->setChecked( true ); } else diff --git a/src/gui/vector/qgsvectorlayerproperties.cpp b/src/gui/vector/qgsvectorlayerproperties.cpp index a8d21e25b716..2133b0083dcc 100644 --- a/src/gui/vector/qgsvectorlayerproperties.cpp +++ b/src/gui/vector/qgsvectorlayerproperties.cpp @@ -285,8 +285,8 @@ QgsVectorLayerProperties::QgsVectorLayerProperties( if ( mLayer->dataProvider() ) { //enable spatial index button group if supported by provider, or if one already exists - QgsVectorDataProvider::Capabilities capabilities = mLayer->dataProvider()->capabilities(); - if ( !( capabilities & QgsVectorDataProvider::CreateSpatialIndex ) ) + Qgis::VectorProviderCapabilities capabilities = mLayer->dataProvider()->capabilities(); + if ( !( capabilities & Qgis::VectorProviderCapability::CreateSpatialIndex ) ) { pbnIndex->setEnabled( false ); } @@ -296,7 +296,7 @@ QgsVectorLayerProperties::QgsVectorLayerProperties( pbnIndex->setText( tr( "Spatial Index Exists" ) ); } - if ( capabilities & QgsVectorDataProvider::SelectEncoding ) + if ( capabilities & Qgis::VectorProviderCapability::SelectEncoding ) { cboProviderEncoding->addItems( QgsVectorDataProvider::availableEncodings() ); QString enc = mLayer->dataProvider()->encoding(); @@ -667,7 +667,7 @@ void QgsVectorLayerProperties::syncToLayer() QString remark = QStringLiteral( " (%1)" ).arg( tr( "Not supported" ) ); const QgsVectorDataProvider *provider = mLayer->dataProvider(); - if ( !( provider && ( provider->capabilities() & QgsVectorDataProvider::SimplifyGeometries ) ) ) + if ( !( provider && ( provider->capabilities() & Qgis::VectorProviderCapability::SimplifyGeometries ) ) ) { mSimplifyDrawingAtProvider->setChecked( false ); mSimplifyDrawingAtProvider->setEnabled( false ); @@ -771,7 +771,7 @@ void QgsVectorLayerProperties::apply() // provider-specific options if ( mLayer->dataProvider() ) { - if ( mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::SelectEncoding ) + if ( mLayer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::SelectEncoding ) { mLayer->setProviderEncoding( cboProviderEncoding->currentText() ); } @@ -970,7 +970,7 @@ void QgsVectorLayerProperties::apply() if ( newSource != mLayer->source() ) { mLayer->setDataSource( newSource, mLayer->name(), mLayer->providerType(), - QgsDataProvider::ProviderOptions(), QgsDataProvider::ReadFlags() ); + QgsDataProvider::ProviderOptions(), Qgis::DataProviderReadFlags() ); // resync dialog to layer's new state -- this allows any changed layer properties // (such as a forced creation of a new renderer compatible with the new layer, new field configuration, etc) @@ -1724,7 +1724,7 @@ void QgsVectorLayerProperties::optionsStackedWidget_CurrentChanged( int index ) void QgsVectorLayerProperties::mSimplifyDrawingGroupBox_toggled( bool checked ) { const QgsVectorDataProvider *provider = mLayer->dataProvider(); - if ( !( provider && ( provider->capabilities() & QgsVectorDataProvider::SimplifyGeometries ) != 0 ) ) + if ( !( provider && ( provider->capabilities() & Qgis::VectorProviderCapability::SimplifyGeometries ) != 0 ) ) { mSimplifyDrawingAtProvider->setEnabled( false ); } diff --git a/src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp b/src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp index b0fc04d44530..6199e59d4094 100644 --- a/src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp +++ b/src/plugins/geometry_checker/qgsgeometrycheckerresulttab.cpp @@ -87,7 +87,7 @@ QgsGeometryCheckerResultTab::QgsGeometryCheckerResultTab( QgisInterface *iface, bool allLayersEditable = true; for ( const QgsFeaturePool *featurePool : mChecker->featurePools() ) { - if ( ( featurePool->layer()->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) == 0 ) + if ( ( featurePool->layer()->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) == 0 ) { allLayersEditable = false; break; diff --git a/src/plugins/geometry_checker/qgsgeometrycheckersetuptab.cpp b/src/plugins/geometry_checker/qgsgeometrycheckersetuptab.cpp index eae78023d7e8..00cee3c73e28 100644 --- a/src/plugins/geometry_checker/qgsgeometrycheckersetuptab.cpp +++ b/src/plugins/geometry_checker/qgsgeometrycheckersetuptab.cpp @@ -408,7 +408,7 @@ void QgsGeometryCheckerSetupTab::runChecks() QList nonEditableLayers; for ( QgsVectorLayer *layer : std::as_const( processLayers ) ) { - if ( ( layer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) == 0 ) + if ( ( layer->dataProvider()->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) == 0 ) { nonEditableLayers.append( layer ); } diff --git a/src/providers/arcgisrest/qgsafsprovider.cpp b/src/providers/arcgisrest/qgsafsprovider.cpp index f1b97b425dec..87f8bee6f180 100644 --- a/src/providers/arcgisrest/qgsafsprovider.cpp +++ b/src/providers/arcgisrest/qgsafsprovider.cpp @@ -30,7 +30,7 @@ #include "qgsvariantutils.h" -QgsAfsProvider::QgsAfsProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsAfsProvider::QgsAfsProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { mSharedData.reset( new QgsAfsSharedData( QgsDataSourceUri( uri ) ) ); @@ -586,46 +586,46 @@ bool QgsAfsProvider::createAttributeIndex( int field ) return true; } -QgsVectorDataProvider::Capabilities QgsAfsProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsAfsProvider::capabilities() const { - QgsVectorDataProvider::Capabilities c = QgsVectorDataProvider::SelectAtId - | QgsVectorDataProvider::ReadLayerMetadata - | QgsVectorDataProvider::Capability::ReloadData; + Qgis::VectorProviderCapabilities c = Qgis::VectorProviderCapability::SelectAtId + | Qgis::VectorProviderCapability::ReadLayerMetadata + | Qgis::VectorProviderCapability::ReloadData; if ( !mRendererDataMap.empty() ) { - c = c | QgsVectorDataProvider::CreateRenderer; + c = c | Qgis::VectorProviderCapability::CreateRenderer; } if ( !mLabelingDataList.empty() ) { - c = c | QgsVectorDataProvider::CreateLabeling; + c = c | Qgis::VectorProviderCapability::CreateLabeling; } if ( mServerSupportsCurves ) - c |= QgsVectorDataProvider::CircularGeometries; + c |= Qgis::VectorProviderCapability::CircularGeometries; if ( mCapabilityStrings.contains( QLatin1String( "delete" ), Qt::CaseInsensitive ) ) { - c |= QgsVectorDataProvider::DeleteFeatures; + c |= Qgis::VectorProviderCapability::DeleteFeatures; } if ( mCapabilityStrings.contains( QLatin1String( "create" ), Qt::CaseInsensitive ) ) { - c |= QgsVectorDataProvider::AddFeatures; + c |= Qgis::VectorProviderCapability::AddFeatures; } if ( mCapabilityStrings.contains( QLatin1String( "update" ), Qt::CaseInsensitive ) ) { - c |= QgsVectorDataProvider::ChangeAttributeValues; - c |= QgsVectorDataProvider::ChangeFeatures; - c |= QgsVectorDataProvider::ChangeGeometries; + c |= Qgis::VectorProviderCapability::ChangeAttributeValues; + c |= Qgis::VectorProviderCapability::ChangeFeatures; + c |= Qgis::VectorProviderCapability::ChangeGeometries; } if ( mAdminCapabilityStrings.contains( QLatin1String( "update" ), Qt::CaseInsensitive ) ) { - c |= QgsVectorDataProvider::AddAttributes; - c |= QgsVectorDataProvider::CreateAttributeIndex; + c |= Qgis::VectorProviderCapability::AddAttributes; + c |= Qgis::VectorProviderCapability::CreateAttributeIndex; } if ( mAdminCapabilityStrings.contains( QLatin1String( "delete" ), Qt::CaseInsensitive ) ) { - c |= QgsVectorDataProvider::DeleteAttributes; + c |= Qgis::VectorProviderCapability::DeleteAttributes; } return c; @@ -822,7 +822,7 @@ QString QgsAfsProviderMetadata::encodeUri( const QVariantMap &parts ) const return dsUri.uri( false ); } -QgsAfsProvider *QgsAfsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsAfsProvider *QgsAfsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsAfsProvider( uri, options, flags ); } diff --git a/src/providers/arcgisrest/qgsafsprovider.h b/src/providers/arcgisrest/qgsafsprovider.h index 9fc89b706695..6bfaa845b6fa 100644 --- a/src/providers/arcgisrest/qgsafsprovider.h +++ b/src/providers/arcgisrest/qgsafsprovider.h @@ -43,7 +43,7 @@ class QgsAfsProvider : public QgsVectorDataProvider static const inline QString AFS_PROVIDER_KEY = QStringLiteral( "arcgisfeatureserver" ); static const inline QString AFS_PROVIDER_DESCRIPTION = QStringLiteral( "ArcGIS Feature Service data provider" ); - QgsAfsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + QgsAfsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /* Inherited from QgsVectorDataProvider */ QgsAbstractFeatureSource *featureSource() const override; @@ -62,7 +62,7 @@ class QgsAfsProvider : public QgsVectorDataProvider bool deleteAttributes( const QgsAttributeIds &attributes ) override; bool createAttributeIndex( int field ) override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QgsAttributeList pkAttributeIndexes() const override; QString defaultValueClause( int fieldId ) const override; bool skipConstraintCheck( int fieldIndex, QgsFieldConstraints::Constraint constraint, const QVariant &value = QVariant() ) const override; @@ -120,7 +120,7 @@ class QgsAfsProviderMetadata: public QgsProviderMetadata QList dataItemProviders() const override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; - QgsAfsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsAfsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; }; diff --git a/src/providers/arcgisrest/qgsamsprovider.cpp b/src/providers/arcgisrest/qgsamsprovider.cpp index de4e51b8bf4f..4c6ff935a44e 100644 --- a/src/providers/arcgisrest/qgsamsprovider.cpp +++ b/src/providers/arcgisrest/qgsamsprovider.cpp @@ -187,7 +187,7 @@ void QgsAmsLegendFetcher::handleFinished() /////////////////////////////////////////////////////////////////////////////// -QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsRasterDataProvider( uri, options, flags ) { QgsDataSourceUri dataSource( dataSourceUri() ); @@ -1273,7 +1273,7 @@ QIcon QgsAmsProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconAms.svg" ) ); } -QgsAmsProvider *QgsAmsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsAmsProvider *QgsAmsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsAmsProvider( uri, options, flags ); } diff --git a/src/providers/arcgisrest/qgsamsprovider.h b/src/providers/arcgisrest/qgsamsprovider.h index e202c96c3045..efff07cf0734 100644 --- a/src/providers/arcgisrest/qgsamsprovider.h +++ b/src/providers/arcgisrest/qgsamsprovider.h @@ -72,7 +72,7 @@ class QgsAmsProvider : public QgsRasterDataProvider static const QString AMS_PROVIDER_KEY; static const QString AMS_PROVIDER_DESCRIPTION; - QgsAmsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + QgsAmsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); explicit QgsAmsProvider( const QgsAmsProvider &other, const QgsDataProvider::ProviderOptions &providerOptions ); Qgis::DataProviderFlags flags() const override; @@ -229,7 +229,7 @@ class QgsAmsProviderMetadata: public QgsProviderMetadata public: QgsAmsProviderMetadata(); QIcon icon() const override; - QgsAmsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsAmsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; QList< Qgis::LayerType > supportedLayerTypes() const override; diff --git a/src/providers/delimitedtext/qgsdelimitedtextprovider.cpp b/src/providers/delimitedtext/qgsdelimitedtextprovider.cpp index cbe6538bd184..0049bcd85f02 100644 --- a/src/providers/delimitedtext/qgsdelimitedtextprovider.cpp +++ b/src/providers/delimitedtext/qgsdelimitedtextprovider.cpp @@ -60,7 +60,7 @@ static const int SUBSET_ID_THRESHOLD_FACTOR = 10; QRegularExpression QgsDelimitedTextProvider::sWktPrefixRegexp( QStringLiteral( "^\\s*(?:\\d+\\s+|SRID\\=\\d+\\;)" ), QRegularExpression::CaseInsensitiveOption ); QRegularExpression QgsDelimitedTextProvider::sCrdDmsRegexp( QStringLiteral( "^\\s*(?:([-+nsew])\\s*)?(\\d{1,3})(?:[^0-9.]+([0-5]?\\d))?[^0-9.]+([0-5]?\\d(?:\\.\\d+)?)[^0-9.]*([-+nsew])?\\s*$" ), QRegularExpression::CaseInsensitiveOption ); -QgsDelimitedTextProvider::QgsDelimitedTextProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDelimitedTextProvider::QgsDelimitedTextProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { @@ -190,7 +190,7 @@ QgsDelimitedTextProvider::QgsDelimitedTextProvider( const QString &uri, const Pr // geometry type (for Wkt), extents, etc. Parameter value subset.isEmpty() // avoid redundant building indexes if we will be building a subset string, // in which case indexes will be rebuilt. - scanFile( subset.isEmpty() && ! flags.testFlag( QgsDataProvider::ReadFlag::SkipGetExtent ), /* force full scan */ false ); + scanFile( subset.isEmpty() && ! flags.testFlag( Qgis::DataProviderReadFlag::SkipGetExtent ), /* force full scan */ false ); if ( ! subset.isEmpty() ) { @@ -743,7 +743,7 @@ void QgsDelimitedTextProvider::scanFile( bool buildIndexes, bool forceFullScan, } // In case of fast scan we exit after the third record (to avoid detecting booleans) - if ( ! forceFullScan && mReadFlags.testFlag( ReadFlag::SkipFullScan ) && mNumberFeatures > 2 ) + if ( ! forceFullScan && mReadFlags.testFlag( Qgis::DataProviderReadFlag::SkipFullScan ) && mNumberFeatures > 2 ) { break; } @@ -1369,9 +1369,9 @@ bool QgsDelimitedTextProvider::isValid() const return mLayerValid; } -QgsVectorDataProvider::Capabilities QgsDelimitedTextProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsDelimitedTextProvider::capabilities() const { - return SelectAtId | CreateSpatialIndex | CircularGeometries; + return Qgis::VectorProviderCapability::SelectAtId | Qgis::VectorProviderCapability::CreateSpatialIndex | Qgis::VectorProviderCapability::CircularGeometries; } QgsCoordinateReferenceSystem QgsDelimitedTextProvider::crs() const @@ -1480,7 +1480,7 @@ QList QgsDelimitedTextProviderMetadata::supportedLayerTypes() c return { Qgis::LayerType::Vector }; } -QgsDataProvider *QgsDelimitedTextProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsDelimitedTextProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsDelimitedTextProvider( uri, options, flags ); } diff --git a/src/providers/delimitedtext/qgsdelimitedtextprovider.h b/src/providers/delimitedtext/qgsdelimitedtextprovider.h index a2da1356e0db..ccd5d7ce60d3 100644 --- a/src/providers/delimitedtext/qgsdelimitedtextprovider.h +++ b/src/providers/delimitedtext/qgsdelimitedtextprovider.h @@ -82,7 +82,7 @@ class QgsDelimitedTextProvider final: public QgsVectorDataProvider GeomAsWkt }; - explicit QgsDelimitedTextProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + explicit QgsDelimitedTextProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsDelimitedTextProvider() override; /* Implementation of functions from QgsVectorDataProvider */ @@ -93,7 +93,7 @@ class QgsDelimitedTextProvider final: public QgsVectorDataProvider Qgis::WkbType wkbType() const override; long long featureCount() const override; QgsFields fields() const override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; bool createSpatialIndex() override; Qgis::SpatialIndexPresence hasSpatialIndex() const override; QString name() const override; @@ -259,7 +259,7 @@ class QgsDelimitedTextProviderMetadata final: public QgsProviderMetadata public: QgsDelimitedTextProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; diff --git a/src/providers/delimitedtext/qgsdelimitedtextsourceselect.cpp b/src/providers/delimitedtext/qgsdelimitedtextsourceselect.cpp index a5a5807eb708..0e5b64a72b33 100644 --- a/src/providers/delimitedtext/qgsdelimitedtextsourceselect.cpp +++ b/src/providers/delimitedtext/qgsdelimitedtextsourceselect.cpp @@ -978,7 +978,7 @@ bool QgsDelimitedTextFileScanTask::run() QgsDelimitedTextProvider provider( mDataSource, QgsDataProvider::ProviderOptions(), - QgsDataProvider::ReadFlag::SkipFeatureCount | QgsDataProvider::ReadFlag::SkipGetExtent | QgsDataProvider::ReadFlag::SkipFullScan ); + Qgis::DataProviderReadFlag::SkipFeatureCount | Qgis::DataProviderReadFlag::SkipGetExtent | Qgis::DataProviderReadFlag::SkipFullScan ); connect( &mFeedback, &QgsFeedback::processedCountChanged, this, &QgsDelimitedTextFileScanTask::processedCountChanged ); diff --git a/src/providers/gpx/qgsgpxprovider.cpp b/src/providers/gpx/qgsgpxprovider.cpp index 4247e39dc970..dc37fe3841d6 100644 --- a/src/providers/gpx/qgsgpxprovider.cpp +++ b/src/providers/gpx/qgsgpxprovider.cpp @@ -66,7 +66,7 @@ const QString GPX_KEY = QStringLiteral( "gpx" ); const QString GPX_DESCRIPTION = QObject::tr( "GPS eXchange format provider" ); -QgsGPXProvider::QgsGPXProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsGPXProvider::QgsGPXProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { // we always use UTF-8 @@ -122,11 +122,11 @@ QString QgsGPXProvider::storageType() const return tr( "GPS eXchange file" ); } -QgsVectorDataProvider::Capabilities QgsGPXProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsGPXProvider::capabilities() const { - return QgsVectorDataProvider::AddFeatures | - QgsVectorDataProvider::DeleteFeatures | - QgsVectorDataProvider::ChangeAttributeValues; + return Qgis::VectorProviderCapability::AddFeatures | + Qgis::VectorProviderCapability::DeleteFeatures | + Qgis::VectorProviderCapability::ChangeAttributeValues; } QgsRectangle QgsGPXProvider::extent() const @@ -569,7 +569,7 @@ QGISEXTERN QgsProviderMetadata *providerMetadataFactory() return new QgsGpxProviderMetadata(); } -QgsDataProvider *QgsGpxProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsGpxProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsGPXProvider( uri, options, flags ); } diff --git a/src/providers/gpx/qgsgpxprovider.h b/src/providers/gpx/qgsgpxprovider.h index e87827131f93..397ae6183d55 100644 --- a/src/providers/gpx/qgsgpxprovider.h +++ b/src/providers/gpx/qgsgpxprovider.h @@ -43,7 +43,7 @@ class QgsGPXProvider final: public QgsVectorDataProvider Q_OBJECT public: - explicit QgsGPXProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + explicit QgsGPXProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsGPXProvider() override; /* Functions inherited from QgsVectorDataProvider */ @@ -57,7 +57,7 @@ class QgsGPXProvider final: public QgsVectorDataProvider bool addFeatures( QgsFeatureList &flist, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) override; bool deleteFeatures( const QgsFeatureIds &id ) override; bool changeAttributeValues( const QgsChangedAttributesMap &attr_map ) override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QVariant defaultValue( int fieldId ) const override; @@ -124,7 +124,7 @@ class QgsGpxProviderMetadata final: public QgsProviderMetadata public: QgsGpxProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QgsProviderMetadata::ProviderCapabilities providerCapabilities() const override; QString encodeUri( const QVariantMap &parts ) const override; QVariantMap decodeUri( const QString &uri ) const override; diff --git a/src/providers/grass/qgsgrassprovider.cpp b/src/providers/grass/qgsgrassprovider.cpp index 74ce4c065c85..e31c35cdca8b 100644 --- a/src/providers/grass/qgsgrassprovider.cpp +++ b/src/providers/grass/qgsgrassprovider.cpp @@ -269,22 +269,22 @@ QgsGrassProvider::~QgsGrassProvider() } } -QgsVectorDataProvider::Capabilities QgsGrassProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsGrassProvider::capabilities() const { // Because of bug in GRASS https://trac.osgeo.org/grass/ticket/2775 it is not possible // close db drivers in random order on Unix and probably Mac -> disable editing if another layer is edited #ifndef Q_OS_WIN if ( sEditedCount > 0 && !mEditBuffer ) { - return QgsVectorDataProvider::Capabilities(); + return Qgis::VectorProviderCapabilities(); } #endif // for now, only one map may be edited at time if ( mEditBuffer || ( mLayer && mLayer->map() && !mLayer->map()->isEdited() ) ) { - return AddFeatures | DeleteFeatures | ChangeGeometries | AddAttributes | DeleteAttributes | ChangeAttributeValues; + return Qgis::VectorProviderCapability::AddFeatures | Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::ChangeGeometries | Qgis::VectorProviderCapability::AddAttributes | Qgis::VectorProviderCapability::DeleteAttributes | Qgis::VectorProviderCapability::ChangeAttributeValues; } - return QgsVectorDataProvider::Capabilities(); + return Qgis::VectorProviderCapabilities(); } bool QgsGrassProvider::openLayer() diff --git a/src/providers/grass/qgsgrassprovider.h b/src/providers/grass/qgsgrassprovider.h index c6c254ba8cf2..fd501bc46c40 100644 --- a/src/providers/grass/qgsgrassprovider.h +++ b/src/providers/grass/qgsgrassprovider.h @@ -63,7 +63,7 @@ class GRASS_LIB_EXPORT QgsGrassProvider : public QgsVectorDataProvider ~QgsGrassProvider() override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QgsAbstractFeatureSource *featureSource() const override; QString storageType() const override; QgsFeatureIterator getFeatures( const QgsFeatureRequest &request ) const override; diff --git a/src/providers/grass/qgsgrassprovidermodule.cpp b/src/providers/grass/qgsgrassprovidermodule.cpp index 6e7f04239bf9..b7ad626c5beb 100644 --- a/src/providers/grass/qgsgrassprovidermodule.cpp +++ b/src/providers/grass/qgsgrassprovidermodule.cpp @@ -1294,7 +1294,7 @@ QgsGrassProviderMetadata::QgsGrassProviderMetadata() : QgsProviderMetadata( PROVIDER_KEY, PROVIDER_DESCRIPTION ) {} -QgsDataProvider *QgsGrassProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsGrassProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { Q_UNUSED( options ) Q_UNUSED( flags ) diff --git a/src/providers/grass/qgsgrassprovidermodule.h b/src/providers/grass/qgsgrassprovidermodule.h index dd144903221c..eda0bc4b8095 100644 --- a/src/providers/grass/qgsgrassprovidermodule.h +++ b/src/providers/grass/qgsgrassprovidermodule.h @@ -282,7 +282,7 @@ class QgsGrassProviderMetadata: public QgsProviderMetadata public: QgsGrassProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsDataItemProvider * > dataItemProviders() const override; void initProvider() override; QList< Qgis::LayerType > supportedLayerTypes() const override; diff --git a/src/providers/grass/qgsgrassrasterprovidermodule.cpp b/src/providers/grass/qgsgrassrasterprovidermodule.cpp index 34d224345f89..e64b411d42bd 100644 --- a/src/providers/grass/qgsgrassrasterprovidermodule.cpp +++ b/src/providers/grass/qgsgrassrasterprovidermodule.cpp @@ -28,7 +28,7 @@ class QgsGrassRasterProviderMetadata: public QgsProviderMetadata { public: QgsGrassRasterProviderMetadata(): QgsProviderMetadata( PROVIDER_KEY, PROVIDER_DESCRIPTION ) {} - QgsGrassRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override + QgsGrassRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override { Q_UNUSED( options ); Q_UNUSED( flags ); diff --git a/src/providers/hana/qgshanaprovider.cpp b/src/providers/hana/qgshanaprovider.cpp index 117ad3dc30b9..47841bdb7c01 100644 --- a/src/providers/hana/qgshanaprovider.cpp +++ b/src/providers/hana/qgshanaprovider.cpp @@ -353,7 +353,7 @@ const QString QgsHanaProvider::HANA_DESCRIPTION = QStringLiteral( "SAP HANA spat QgsHanaProvider::QgsHanaProvider( const QString &uri, - const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) , mUri( uri ) , mFeaturesCount( -1 ) @@ -442,14 +442,14 @@ QString QgsHanaProvider::storageType() const return QObject::tr( "SAP HANA database" ); } -QgsVectorDataProvider::Capabilities QgsHanaProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsHanaProvider::capabilities() const { auto capabilities = mCapabilities; if ( mPrimaryKeyAttrs.isEmpty() ) - capabilities &= ~( QgsVectorDataProvider::DeleteFeatures - | QgsVectorDataProvider::ChangeAttributeValues - | QgsVectorDataProvider::ChangeFeatures ); + capabilities &= ~( Qgis::VectorProviderCapability::DeleteFeatures + | Qgis::VectorProviderCapability::ChangeAttributeValues + | Qgis::VectorProviderCapability::ChangeFeatures ); return capabilities; } @@ -1264,7 +1264,7 @@ QString QgsHanaProvider::buildQuery( const QString &columns ) const bool QgsHanaProvider::checkPermissionsAndSetCapabilities( QgsHanaConnection &conn ) { if ( !mSelectAtIdDisabled ) - mCapabilities = QgsVectorDataProvider::SelectAtId; + mCapabilities = Qgis::VectorProviderCapability::SelectAtId; // Read access permissions if ( !mIsQuery ) @@ -1283,31 +1283,31 @@ bool QgsHanaProvider::checkPermissionsAndSetCapabilities( QgsHanaConnection &con if ( privType == QLatin1String( "ALL PRIVILEGES" ) || privType == QLatin1String( "CREATE ANY" ) ) { - mCapabilities |= QgsVectorDataProvider::AddAttributes - | QgsVectorDataProvider::RenameAttributes - | QgsVectorDataProvider::AddFeatures - | QgsVectorDataProvider::DeleteAttributes - | QgsVectorDataProvider::DeleteFeatures - | QgsVectorDataProvider::FastTruncate - | QgsVectorDataProvider::ChangeAttributeValues - | QgsVectorDataProvider::ChangeFeatures - | QgsVectorDataProvider::ChangeGeometries; + mCapabilities |= Qgis::VectorProviderCapability::AddAttributes + | Qgis::VectorProviderCapability::RenameAttributes + | Qgis::VectorProviderCapability::AddFeatures + | Qgis::VectorProviderCapability::DeleteAttributes + | Qgis::VectorProviderCapability::DeleteFeatures + | Qgis::VectorProviderCapability::FastTruncate + | Qgis::VectorProviderCapability::ChangeAttributeValues + | Qgis::VectorProviderCapability::ChangeFeatures + | Qgis::VectorProviderCapability::ChangeGeometries; } else { if ( privType == QLatin1String( "ALTER" ) ) - mCapabilities |= QgsVectorDataProvider::DeleteAttributes - | QgsVectorDataProvider::RenameAttributes; + mCapabilities |= Qgis::VectorProviderCapability::DeleteAttributes + | Qgis::VectorProviderCapability::RenameAttributes; else if ( privType == QLatin1String( "DELETE" ) ) - mCapabilities |= QgsVectorDataProvider::DeleteFeatures - | QgsVectorDataProvider::FastTruncate; + mCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures + | Qgis::VectorProviderCapability::FastTruncate; else if ( privType == QLatin1String( "INSERT" ) ) - mCapabilities |= QgsVectorDataProvider::AddAttributes - | QgsVectorDataProvider::AddFeatures; + mCapabilities |= Qgis::VectorProviderCapability::AddAttributes + | Qgis::VectorProviderCapability::AddFeatures; else if ( privType == QLatin1String( "UPDATE" ) ) - mCapabilities |= QgsVectorDataProvider::ChangeAttributeValues - | QgsVectorDataProvider::ChangeFeatures - | QgsVectorDataProvider::ChangeGeometries; + mCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues + | Qgis::VectorProviderCapability::ChangeFeatures + | Qgis::VectorProviderCapability::ChangeGeometries; } } rsPrivileges->close(); @@ -1315,15 +1315,15 @@ bool QgsHanaProvider::checkPermissionsAndSetCapabilities( QgsHanaConnection &con // TODO needs to be implemented in QgsHanaFeatureIterator class // supports geometry simplification on provider side - //mCapabilities |= (QgsVectorDataProvider::SimplifyGeometries); - // QgsVectorDataProvider::SimplifyGeometriesWithTopologicalValidation feature - // is not supported in HANA QgsVectorDataProvider::SimplifyGeometriesWithTopologicalValidation + //mCapabilities |= (Qgis::VectorProviderCapability::SimplifyGeometries); + // Qgis::VectorProviderCapability::SimplifyGeometriesWithTopologicalValidation feature + // is not supported in HANA Qgis::VectorProviderCapability::SimplifyGeometriesWithTopologicalValidation - mCapabilities |= QgsVectorDataProvider::TransactionSupport; + mCapabilities |= Qgis::VectorProviderCapability::TransactionSupport; - mCapabilities |= QgsVectorDataProvider::CircularGeometries; + mCapabilities |= Qgis::VectorProviderCapability::CircularGeometries; - mCapabilities |= QgsVectorDataProvider::ReadLayerMetadata; + mCapabilities |= Qgis::VectorProviderCapability::ReadLayerMetadata; return true; } @@ -1825,7 +1825,7 @@ void QgsHanaProviderMetadata::cleanupProvider() } QgsHanaProvider *QgsHanaProviderMetadata::createProvider( - const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) + const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { QgsDataSourceUri dsUri { uri }; QgsHanaDriver *drv = QgsHanaDriver::instance(); diff --git a/src/providers/hana/qgshanaprovider.h b/src/providers/hana/qgshanaprovider.h index 720fa99b59c4..d39df3227e4d 100644 --- a/src/providers/hana/qgshanaprovider.h +++ b/src/providers/hana/qgshanaprovider.h @@ -47,7 +47,7 @@ class QgsHanaProvider final : public QgsVectorDataProvider static const QString HANA_DESCRIPTION; QgsHanaProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); /* Functions inherited from QgsVectorDataProvider */ @@ -78,7 +78,7 @@ class QgsHanaProvider final : public QgsVectorDataProvider const QgsGeometryMap &geometryMap ) override; bool changeAttributeValues( const QgsChangedAttributesMap &attrMap ) override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QVariant defaultValue( int fieldId ) const override; /* Functions inherited from QgsDataProvider */ @@ -159,7 +159,7 @@ class QgsHanaProvider final : public QgsVectorDataProvider QgsFields mFields; AttributeFields mAttributeFields; //Capabilities of the layer - QgsVectorDataProvider::Capabilities mCapabilities; + Qgis::VectorProviderCapabilities mCapabilities; // Default values of the result set QMap mDefaultValues; // Number of features in the layer @@ -180,7 +180,7 @@ class QgsHanaProviderMetadata : public QgsProviderMetadata void cleanupProvider() override; - QgsHanaProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsHanaProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; Qgis::VectorExportResult createEmptyLayer( const QString &uri, diff --git a/src/providers/mdal/qgsmdalprovider.cpp b/src/providers/mdal/qgsmdalprovider.cpp index 1aa03bf3d882..db83908ef833 100644 --- a/src/providers/mdal/qgsmdalprovider.cpp +++ b/src/providers/mdal/qgsmdalprovider.cpp @@ -58,7 +58,7 @@ QStringList QgsMdalProvider::subLayers() const return mSubLayersUris; } -QgsMdalProvider::QgsMdalProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsMdalProvider::QgsMdalProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsMeshDataProvider( uri, options, flags ) { temporalCapabilities()->setTemporalUnit( Qgis::TemporalUnit::Hours ); @@ -959,7 +959,7 @@ QgsMeshDataBlock QgsMdalProvider::areFacesActive( QgsMeshDatasetIndex index, int /*----------------------------------------------------------------------------------------------*/ -QgsMdalProvider *QgsMdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsMdalProvider *QgsMdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsMdalProvider( uri, options, flags ); } diff --git a/src/providers/mdal/qgsmdalprovider.h b/src/providers/mdal/qgsmdalprovider.h index d6e6fff5d029..c4260a578ddd 100644 --- a/src/providers/mdal/qgsmdalprovider.h +++ b/src/providers/mdal/qgsmdalprovider.h @@ -48,7 +48,7 @@ class QgsMdalProvider : public QgsMeshDataProvider * \param uri file name * \param options generic provider options */ - QgsMdalProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + QgsMdalProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsMdalProvider() override; bool isValid() const override; @@ -148,7 +148,7 @@ class QgsMdalProviderMetadata: public QgsProviderMetadata QIcon icon() const override; QString filters( Qgis::FileFilterType type ) override; QList meshDriversMetadata() override; - QgsMdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsMdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; bool createMeshData( const QgsMesh &mesh, const QString &fileName, const QString &driverName, diff --git a/src/providers/mssql/qgsmssqlprovider.cpp b/src/providers/mssql/qgsmssqlprovider.cpp index 9ce40b101822..48749b87bfdc 100644 --- a/src/providers/mssql/qgsmssqlprovider.cpp +++ b/src/providers/mssql/qgsmssqlprovider.cpp @@ -67,7 +67,7 @@ const QString QgsMssqlProvider::MSSQL_PROVIDER_DESCRIPTION = QStringLiteral( "MS int QgsMssqlProvider::sConnectionId = 0; QgsMssqlProvider::QgsMssqlProvider( const QString &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) , mShared( new QgsMssqlSharedData ) { @@ -89,7 +89,7 @@ QgsMssqlProvider::QgsMssqlProvider( const QString &uri, const ProviderOptions &o mHost = anUri.host(); mUseEstimatedMetadata = anUri.useEstimatedMetadata(); - if ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) + if ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) { mUseEstimatedMetadata = true; } @@ -1867,24 +1867,24 @@ void QgsMssqlProvider::updateExtents() mExtent.setNull(); } -QgsVectorDataProvider::Capabilities QgsMssqlProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsMssqlProvider::capabilities() const { - QgsVectorDataProvider::Capabilities cap = CreateAttributeIndex | AddFeatures | AddAttributes | TransactionSupport; + Qgis::VectorProviderCapabilities cap = Qgis::VectorProviderCapability::CreateAttributeIndex | Qgis::VectorProviderCapability::AddFeatures | Qgis::VectorProviderCapability::AddAttributes | Qgis::VectorProviderCapability::TransactionSupport; bool hasGeom = false; if ( !mGeometryColName.isEmpty() ) { hasGeom = true; - cap |= CreateSpatialIndex; + cap |= Qgis::VectorProviderCapability::CreateSpatialIndex; } if ( mPrimaryKeyAttrs.isEmpty() ) return cap; if ( hasGeom ) - cap |= ChangeGeometries; + cap |= Qgis::VectorProviderCapability::ChangeGeometries; - return cap | DeleteFeatures | ChangeAttributeValues | DeleteAttributes | - QgsVectorDataProvider::SelectAtId; + return cap | Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::ChangeAttributeValues | Qgis::VectorProviderCapability::DeleteAttributes | + Qgis::VectorProviderCapability::SelectAtId; } bool QgsMssqlProvider::createSpatialIndex() @@ -2421,7 +2421,7 @@ Qgis::VectorExportResult QgsMssqlProvider::createEmptyLayer( const QString &uri, dsUri.setDataSource( schemaName, tableName, geometryColumn, QString(), primaryKey ); const QgsDataProvider::ProviderOptions providerOptions; - const QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + const Qgis::DataProviderReadFlags flags; QgsMssqlProvider *provider = new QgsMssqlProvider( dsUri.uri(), providerOptions, flags ); if ( !provider->isValid() ) { @@ -2493,7 +2493,7 @@ Qgis::VectorExportResult QgsMssqlProvider::createEmptyLayer( const QString &uri, QgsMssqlProvider *QgsMssqlProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { return new QgsMssqlProvider( uri, options, flags ); } diff --git a/src/providers/mssql/qgsmssqlprovider.h b/src/providers/mssql/qgsmssqlprovider.h index 02702ddc067c..b0982781586d 100644 --- a/src/providers/mssql/qgsmssqlprovider.h +++ b/src/providers/mssql/qgsmssqlprovider.h @@ -66,7 +66,7 @@ class QgsMssqlProvider final: public QgsVectorDataProvider static const QString MSSQL_PROVIDER_DESCRIPTION; explicit QgsMssqlProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsMssqlProvider() override; @@ -100,7 +100,7 @@ class QgsMssqlProvider final: public QgsVectorDataProvider bool supportsSubsetString() const override { return true; } - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; /* Implementation of functions from QgsDataProvider */ @@ -322,7 +322,7 @@ class QgsMssqlProviderMetadata final: public QgsProviderMetadata QMap &oldToNewAttrIdxMap, QString &errorMessage, const QMap *options ) override; - QgsMssqlProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsMssqlProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; virtual QList< QgsDataItemProvider * > dataItemProviders() const override; QgsTransaction *createTransaction( const QString &connString ) override; diff --git a/src/providers/oracle/qgsoracleprovider.cpp b/src/providers/oracle/qgsoracleprovider.cpp index c87267b7d654..e64544bd6781 100644 --- a/src/providers/oracle/qgsoracleprovider.cpp +++ b/src/providers/oracle/qgsoracleprovider.cpp @@ -62,7 +62,7 @@ const QString ORACLE_KEY = "oracle"; const QString ORACLE_DESCRIPTION = "Oracle data provider"; QgsOracleProvider::QgsOracleProvider( QString const &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) , mValid( false ) , mIsQuery( false ) @@ -91,7 +91,7 @@ QgsOracleProvider::QgsOracleProvider( QString const &uri, const ProviderOptions mSrid = mUri.srid().toInt(); mRequestedGeomType = mUri.wkbType(); mUseEstimatedMetadata = mUri.useEstimatedMetadata(); - if ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) + if ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) { mUseEstimatedMetadata = true; } @@ -737,7 +737,7 @@ bool QgsOracleProvider::loadFields() if ( !mGeometryColumn.isEmpty() ) mSpatialIndexName = conn->getSpatialIndexName( mOwnerName, mTableName, mGeometryColumn, mHasSpatialIndex ); - mEnabledCapabilities |= QgsVectorDataProvider::CreateSpatialIndex; + mEnabledCapabilities |= Qgis::VectorProviderCapability::CreateSpatialIndex; } if ( !mGeometryColumn.isEmpty() ) @@ -808,17 +808,17 @@ bool QgsOracleProvider::hasSufficientPermsAndCapabilities() { QgsDebugMsgLevel( QStringLiteral( "Checking for permissions on the relation" ), 2 ); - mEnabledCapabilities = QgsVectorDataProvider::SelectAtId | QgsVectorDataProvider::TransactionSupport; + mEnabledCapabilities = Qgis::VectorProviderCapability::SelectAtId | Qgis::VectorProviderCapability::TransactionSupport; // supports circular geometries - mEnabledCapabilities |= QgsVectorDataProvider::CircularGeometries; + mEnabledCapabilities |= Qgis::VectorProviderCapability::CircularGeometries; QgsOracleConn *conn = connectionRO(); QSqlQuery qry( *conn ); if ( !mIsQuery ) { - if ( mReadFlags & QgsDataProvider::ForceReadOnly ) + if ( mReadFlags & Qgis::DataProviderReadFlag::ForceReadOnly ) { // Does not check editable capabilities qry.finish(); @@ -828,13 +828,13 @@ bool QgsOracleProvider::hasSufficientPermsAndCapabilities() if ( conn->currentUser() == mOwnerName ) { // full set of privileges for the owner - mEnabledCapabilities |= QgsVectorDataProvider::DeleteFeatures - | QgsVectorDataProvider::ChangeAttributeValues - | QgsVectorDataProvider::AddFeatures - | QgsVectorDataProvider::AddAttributes - | QgsVectorDataProvider::DeleteAttributes - | QgsVectorDataProvider::ChangeGeometries - | QgsVectorDataProvider::RenameAttributes + mEnabledCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures + | Qgis::VectorProviderCapability::ChangeAttributeValues + | Qgis::VectorProviderCapability::AddFeatures + | Qgis::VectorProviderCapability::AddAttributes + | Qgis::VectorProviderCapability::DeleteAttributes + | Qgis::VectorProviderCapability::ChangeGeometries + | Qgis::VectorProviderCapability::RenameAttributes ; } else @@ -849,19 +849,19 @@ bool QgsOracleProvider::hasSufficientPermsAndCapabilities() if ( priv == "DELETE" ) { - mEnabledCapabilities |= QgsVectorDataProvider::DeleteFeatures; + mEnabledCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures; } else if ( priv == "UPDATE" ) { - mEnabledCapabilities |= QgsVectorDataProvider::ChangeAttributeValues; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues; } else if ( priv == "INSERT" ) { - mEnabledCapabilities |= QgsVectorDataProvider::AddFeatures; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddFeatures; } else if ( priv == "ALTER TABLE" ) { - mEnabledCapabilities |= QgsVectorDataProvider::AddAttributes | QgsVectorDataProvider::DeleteAttributes | QgsVectorDataProvider::RenameAttributes; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddAttributes | Qgis::VectorProviderCapability::DeleteAttributes | Qgis::VectorProviderCapability::RenameAttributes; } } @@ -872,7 +872,7 @@ bool QgsOracleProvider::hasSufficientPermsAndCapabilities() QVariantList() << mOwnerName << mTableName << mGeometryColumn, mUri.uri() ) ) { if ( qry.next() ) - mEnabledCapabilities |= QgsVectorDataProvider::ChangeGeometries; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeGeometries; } else { @@ -2453,7 +2453,7 @@ bool QgsOracleProvider::changeGeometryValues( const QgsGeometryMap &geometry_map return returnvalue; } -QgsVectorDataProvider::Capabilities QgsOracleProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsOracleProvider::capabilities() const { return mEnabledCapabilities; } @@ -2810,7 +2810,7 @@ bool QgsOracleProvider::getGeometryDetails() } // Trust the datasource config means that we used requested geometry type and srid - if ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) + if ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) { mDetectedGeomType = mRequestedGeomType; return true; @@ -3629,7 +3629,7 @@ QString QgsOracleProvider::description() const QgsOracleProvider *QgsOracleProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { return new QgsOracleProvider( uri, options, flags ); } diff --git a/src/providers/oracle/qgsoracleprovider.h b/src/providers/oracle/qgsoracleprovider.h index 0d3328f10cd6..2f2bcb7e45d4 100644 --- a/src/providers/oracle/qgsoracleprovider.h +++ b/src/providers/oracle/qgsoracleprovider.h @@ -96,7 +96,7 @@ class QgsOracleProvider final: public QgsVectorDataProvider * \param flags generic data provider flags */ explicit QgsOracleProvider( QString const &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); //! Destructor ~QgsOracleProvider() override; @@ -178,7 +178,7 @@ class QgsOracleProvider final: public QgsVectorDataProvider QString subsetString() const override; bool setSubsetString( const QString &theSQL, bool updateFeatureCount = true ) override; bool supportsSubsetString() const override { return true; } - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QString name() const override; QString description() const override; QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const override; @@ -316,7 +316,7 @@ class QgsOracleProvider final: public QgsVectorDataProvider mutable QgsRectangle mLayerExtent; //!< Rectangle that contains the extent (bounding box) of the layer mutable long long mFeaturesCounted; //!< Number of features in the layer int mSrid; //!< Srid of column - QgsVectorDataProvider::Capabilities mEnabledCapabilities; //!< Capabilities of layer + Qgis::VectorProviderCapabilities mEnabledCapabilities; //!< Capabilities of layer Qgis::WkbType mDetectedGeomType; //!< Geometry type detected in the database Qgis::WkbType mRequestedGeomType; //!< Geometry type requested in the uri @@ -464,7 +464,7 @@ class QgsOracleProviderMetadata final: public QgsProviderMetadata QMap &oldToNewAttrIdxMap, QString &errorMessage, const QMap *options ) override; - QgsOracleProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsOracleProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList dataItemProviders() const override; QgsTransaction *createTransaction( const QString &connString ) override; diff --git a/src/providers/pdal/qgspdalprovider.cpp b/src/providers/pdal/qgspdalprovider.cpp index 4d5c660f3641..9fa50cfc6a99 100644 --- a/src/providers/pdal/qgspdalprovider.cpp +++ b/src/providers/pdal/qgspdalprovider.cpp @@ -46,7 +46,7 @@ QQueue QgsPdalProvider::sIndexingQueue; QgsPdalProvider::QgsPdalProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsPointCloudDataProvider( uri, options, flags ) , mIndex( nullptr ) { @@ -358,7 +358,7 @@ QIcon QgsPdalProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconPointCloudLayer.svg" ) ); } -QgsPdalProvider *QgsPdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsPdalProvider *QgsPdalProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsPdalProvider( uri, options, flags ); } diff --git a/src/providers/pdal/qgspdalprovider.h b/src/providers/pdal/qgspdalprovider.h index ae201d6c0b7c..e9896e8636c2 100644 --- a/src/providers/pdal/qgspdalprovider.h +++ b/src/providers/pdal/qgspdalprovider.h @@ -30,7 +30,7 @@ class QgsPdalProvider: public QgsPointCloudDataProvider public: QgsPdalProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsPdalProvider(); Qgis::DataProviderFlags flags() const override; @@ -74,7 +74,7 @@ class QgsPdalProviderMetadata : public QgsProviderMetadata public: QgsPdalProviderMetadata(); QIcon icon() const override; - QgsPdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsPdalProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; QString encodeUri( const QVariantMap &parts ) const override; QVariantMap decodeUri( const QString &uri ) const override; diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp index 137d9da4f6a6..42b795c6a411 100644 --- a/src/providers/postgres/qgspostgresprovider.cpp +++ b/src/providers/postgres/qgspostgresprovider.cpp @@ -100,7 +100,7 @@ QgsPostgresProvider::pkType( const QgsField &f ) const QgsPostgresProvider::QgsPostgresProvider( QString const &uri, const ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) , mShared( new QgsPostgresSharedData ) { @@ -134,7 +134,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const &uri, const ProviderOpti { mCheckPrimaryKeyUnicity = true; } - if ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) + if ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) { mCheckPrimaryKeyUnicity = false; } @@ -155,7 +155,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const &uri, const ProviderOpti } mUseEstimatedMetadata = mUri.useEstimatedMetadata(); - if ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) + if ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) { mUseEstimatedMetadata = true; } @@ -174,7 +174,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const &uri, const ProviderOpti return; } - mConnectionRO = QgsPostgresConn::connectDb( mUri, true, true, false, !mReadFlags.testFlag( QgsDataProvider::SkipCredentialsRequest ) ); + mConnectionRO = QgsPostgresConn::connectDb( mUri, true, true, false, !mReadFlags.testFlag( Qgis::DataProviderReadFlag::SkipCredentialsRequest ) ); if ( !mConnectionRO ) { return; @@ -311,7 +311,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const &uri, const ProviderOpti // Constructor is called in another thread than the thread where the provider will live, // so we disconnect the DB, connection will be done later in the provider thread when needed - if ( flags.testFlag( QgsDataProvider::ParallelThreadLoading ) ) + if ( flags.testFlag( Qgis::DataProviderReadFlag::ParallelThreadLoading ) ) disconnectDb(); } @@ -334,7 +334,7 @@ QgsPostgresConn *QgsPostgresProvider::connectionRO() const return mTransaction->connection(); if ( !mConnectionRO ) - mConnectionRO = QgsPostgresConn::connectDb( mUri, true, true, false, !mReadFlags.testFlag( QgsDataProvider::SkipCredentialsRequest ) ); + mConnectionRO = QgsPostgresConn::connectDb( mUri, true, true, false, !mReadFlags.testFlag( Qgis::DataProviderReadFlag::SkipCredentialsRequest ) ); return mConnectionRO; } @@ -1490,11 +1490,11 @@ bool QgsPostgresProvider::hasSufficientPermsAndCapabilities() { QgsDebugMsgLevel( QStringLiteral( "Checking for permissions on the relation" ), 2 ); - mEnabledCapabilities = QgsVectorDataProvider::Capability::ReloadData; + mEnabledCapabilities = Qgis::VectorProviderCapability::ReloadData; QgsPostgresResult testAccess; - bool forceReadOnly = ( mReadFlags & QgsDataProvider::ForceReadOnly ); + bool forceReadOnly = ( mReadFlags & Qgis::DataProviderReadFlag::ForceReadOnly ); bool inRecovery = false; if ( !mIsQuery ) @@ -1504,7 +1504,7 @@ bool QgsPostgresProvider::hasSufficientPermsAndCapabilities() // the latter flag is here just for compatibility if ( !mSelectAtIdDisabled ) { - mEnabledCapabilities |= QgsVectorDataProvider::SelectAtId; + mEnabledCapabilities |= Qgis::VectorProviderCapability::SelectAtId; } QString sql = QStringLiteral( @@ -1580,25 +1580,25 @@ bool QgsPostgresProvider::hasSufficientPermsAndCapabilities() if ( testAccess.PQgetvalue( 0, 3 ) == QLatin1String( "t" ) ) { // INSERT - mEnabledCapabilities |= QgsVectorDataProvider::AddFeatures; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddFeatures; } if ( testAccess.PQgetvalue( 0, 4 ) == QLatin1String( "t" ) ) { // DELETE - mEnabledCapabilities |= QgsVectorDataProvider::DeleteFeatures | QgsVectorDataProvider::FastTruncate; + mEnabledCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::FastTruncate; } if ( testAccess.PQgetvalue( 0, 5 ) == QLatin1String( "t" ) ) { // UPDATE - mEnabledCapabilities |= QgsVectorDataProvider::ChangeAttributeValues; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues; } if ( testAccess.PQgetvalue( 0, 6 ) == QLatin1String( "t" ) ) { // UPDATE (geom column specific) - mEnabledCapabilities |= QgsVectorDataProvider::ChangeGeometries; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeGeometries; } // TODO: merge this with the previous query @@ -1612,7 +1612,7 @@ bool QgsPostgresProvider::hasSufficientPermsAndCapabilities() testAccess = connectionRO()->LoggedPQexec( "QgsPostgresProvider", sql ); if ( testAccess.PQresultStatus() == PGRES_TUPLES_OK && testAccess.PQntuples() == 1 ) { - mEnabledCapabilities |= QgsVectorDataProvider::AddAttributes | QgsVectorDataProvider::DeleteAttributes | QgsVectorDataProvider::RenameAttributes; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddAttributes | Qgis::VectorProviderCapability::DeleteAttributes | Qgis::VectorProviderCapability::RenameAttributes; } } } @@ -1656,27 +1656,27 @@ bool QgsPostgresProvider::hasSufficientPermsAndCapabilities() if ( !mSelectAtIdDisabled ) { - mEnabledCapabilities = QgsVectorDataProvider::SelectAtId; + mEnabledCapabilities = Qgis::VectorProviderCapability::SelectAtId; } } // supports geometry simplification on provider side - mEnabledCapabilities |= ( QgsVectorDataProvider::SimplifyGeometries | QgsVectorDataProvider::SimplifyGeometriesWithTopologicalValidation ); + mEnabledCapabilities |= ( Qgis::VectorProviderCapability::SimplifyGeometries | Qgis::VectorProviderCapability::SimplifyGeometriesWithTopologicalValidation ); //supports transactions - mEnabledCapabilities |= QgsVectorDataProvider::TransactionSupport; + mEnabledCapabilities |= Qgis::VectorProviderCapability::TransactionSupport; // supports circular geometries - mEnabledCapabilities |= QgsVectorDataProvider::CircularGeometries; + mEnabledCapabilities |= Qgis::VectorProviderCapability::CircularGeometries; // supports layer metadata - mEnabledCapabilities |= QgsVectorDataProvider::ReadLayerMetadata; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ReadLayerMetadata; - if ( ( mEnabledCapabilities & QgsVectorDataProvider::ChangeGeometries ) && - ( mEnabledCapabilities & QgsVectorDataProvider::ChangeAttributeValues ) && + if ( ( mEnabledCapabilities & Qgis::VectorProviderCapability::ChangeGeometries ) && + ( mEnabledCapabilities & Qgis::VectorProviderCapability::ChangeAttributeValues ) && mSpatialColType != SctTopoGeometry ) { - mEnabledCapabilities |= QgsVectorDataProvider::ChangeFeatures; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeFeatures; } return true; @@ -1767,7 +1767,7 @@ bool QgsPostgresProvider::determinePrimaryKey() mPrimaryKeyType = PktTid; QgsMessageLog::logMessage( tr( "Primary key is ctid - changing of existing features disabled (%1; %2)" ).arg( mGeometryColumn, mQuery ) ); - mEnabledCapabilities &= ~( QgsVectorDataProvider::DeleteFeatures | QgsVectorDataProvider::ChangeAttributeValues | QgsVectorDataProvider::ChangeGeometries | QgsVectorDataProvider::ChangeFeatures ); + mEnabledCapabilities &= ~( Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::ChangeAttributeValues | Qgis::VectorProviderCapability::ChangeGeometries | Qgis::VectorProviderCapability::ChangeFeatures ); } } @@ -3734,7 +3734,7 @@ QgsAttributeList QgsPostgresProvider::attributeIndexes() const return lst; } -QgsVectorDataProvider::Capabilities QgsPostgresProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsPostgresProvider::capabilities() const { return mEnabledCapabilities; } @@ -4098,7 +4098,7 @@ bool QgsPostgresProvider::getGeometryDetails() // Trust the datasource config means that we used requested geometry type and srid // We only need to get the spatial column type - if ( ( mReadFlags & QgsDataProvider::FlagTrustDataSource ) && + if ( ( mReadFlags & Qgis::DataProviderReadFlag::TrustDataSource ) && mRequestedGeomType != Qgis::WkbType::Unknown && !mRequestedSrid.isEmpty() ) { @@ -4869,7 +4869,7 @@ Qgis::VectorExportResult QgsPostgresProvider::createEmptyLayer( const QString &u dsUri.setDataSource( schemaName, tableName, geometryColumn, QString(), primaryKey ); QgsDataProvider::ProviderOptions providerOptions; - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags(); + Qgis::DataProviderReadFlags flags; std::unique_ptr< QgsPostgresProvider > provider = std::make_unique< QgsPostgresProvider >( dsUri.uri( false ), providerOptions, flags ); if ( !provider->isValid() ) { @@ -5396,7 +5396,7 @@ bool QgsPostgresProvider::hasMetadata() const return hasMetadata; } -QgsDataProvider *QgsPostgresProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsPostgresProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsPostgresProvider( uri, options, flags ); } diff --git a/src/providers/postgres/qgspostgresprovider.h b/src/providers/postgres/qgspostgresprovider.h index b01eb467a796..663759f6c8ac 100644 --- a/src/providers/postgres/qgspostgresprovider.h +++ b/src/providers/postgres/qgspostgresprovider.h @@ -84,7 +84,7 @@ class QgsPostgresProvider final: public QgsVectorDataProvider * \param flags generic data provider flags */ explicit QgsPostgresProvider( QString const &uri, const QgsDataProvider::ProviderOptions &providerOptions, - QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsPostgresProvider() override; @@ -181,7 +181,7 @@ class QgsPostgresProvider final: public QgsVectorDataProvider QString subsetString() const override; bool setSubsetString( const QString &theSQL, bool updateFeatureCount = true ) override; bool supportsSubsetString() const override { return true; } - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; Qgis::VectorDataProviderAttributeEditCapabilities attributeEditCapabilities() const override; Qgis::SpatialIndexPresence hasSpatialIndex() const override; @@ -442,7 +442,7 @@ class QgsPostgresProvider final: public QgsVectorDataProvider // A function that determines if the given columns contain unique entries bool uniqueData( const QString "edColNames ); - QgsVectorDataProvider::Capabilities mEnabledCapabilities = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities mEnabledCapabilities; void appendGeomParam( const QgsGeometry &geom, QStringList ¶m ) const; void appendPkParams( QgsFeatureId fid, QStringList ¶m ) const; @@ -594,7 +594,7 @@ class QgsPostgresProviderMetadata final: public QgsProviderMetadata public: QgsPostgresProviderMetadata(); QIcon icon() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< QgsDataItemProvider * > dataItemProviders() const override; Qgis::VectorExportResult createEmptyLayer( const QString &uri, const QgsFields &fields, Qgis::WkbType wkbType, const QgsCoordinateReferenceSystem &srs, diff --git a/src/providers/postgres/raster/qgspostgresrasterprovider.cpp b/src/providers/postgres/raster/qgspostgresrasterprovider.cpp index fa80f5a694ac..c74fd32ab035 100644 --- a/src/providers/postgres/raster/qgspostgresrasterprovider.cpp +++ b/src/providers/postgres/raster/qgspostgresrasterprovider.cpp @@ -31,7 +31,7 @@ const QString QgsPostgresRasterProvider::PG_RASTER_PROVIDER_KEY = QStringLiteral const QString QgsPostgresRasterProvider::PG_RASTER_PROVIDER_DESCRIPTION = QStringLiteral( "Postgres raster provider" ); -QgsPostgresRasterProvider::QgsPostgresRasterProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags ) +QgsPostgresRasterProvider::QgsPostgresRasterProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsRasterDataProvider( uri, providerOptions, flags ) , mShared( new QgsPostgresRasterSharedData ) { @@ -157,7 +157,7 @@ QgsPostgresRasterProvider::QgsPostgresRasterProvider( const QString &uri, const mValid = true; } -QgsPostgresRasterProvider::QgsPostgresRasterProvider( const QgsPostgresRasterProvider &other, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags ) +QgsPostgresRasterProvider::QgsPostgresRasterProvider( const QgsPostgresRasterProvider &other, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ) : QgsRasterDataProvider( other.dataSourceUri(), providerOptions, flags ) , mValid( other.mValid ) , mCrs( other.mCrs ) @@ -787,7 +787,7 @@ QgsProviderMetadata::ProviderCapabilities QgsPostgresRasterProviderMetadata::pro return QgsProviderMetadata::ProviderCapability::SaveLayerMetadata; } -QgsPostgresRasterProvider *QgsPostgresRasterProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsPostgresRasterProvider *QgsPostgresRasterProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsPostgresRasterProvider( uri, options, flags ); } diff --git a/src/providers/postgres/raster/qgspostgresrasterprovider.h b/src/providers/postgres/raster/qgspostgresrasterprovider.h index 1df30e3f65c8..643b157afc6f 100644 --- a/src/providers/postgres/raster/qgspostgresrasterprovider.h +++ b/src/providers/postgres/raster/qgspostgresrasterprovider.h @@ -34,8 +34,8 @@ class QgsPostgresRasterProvider : public QgsRasterDataProvider public: - QgsPostgresRasterProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); - explicit QgsPostgresRasterProvider( const QgsPostgresRasterProvider &other, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + QgsPostgresRasterProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); + explicit QgsPostgresRasterProvider( const QgsPostgresRasterProvider &other, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); virtual ~QgsPostgresRasterProvider() override = default; @@ -264,7 +264,7 @@ class QgsPostgresRasterProviderMetadata: public QgsProviderMetadata QgsPostgresRasterProviderMetadata(); QIcon icon() const override; QVariantMap decodeUri( const QString &uri ) const override; - QgsPostgresRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsPostgresRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QString encodeUri( const QVariantMap &parts ) const override; QList< Qgis::LayerType > supportedLayerTypes() const override; bool saveLayerMetadata( const QString &uri, const QgsLayerMetadata &metadata, QString &errorMessage ) override; diff --git a/src/providers/spatialite/qgsspatialiteprovider.cpp b/src/providers/spatialite/qgsspatialiteprovider.cpp index fb3677da79ec..2eaddd8a6328 100644 --- a/src/providers/spatialite/qgsspatialiteprovider.cpp +++ b/src/providers/spatialite/qgsspatialiteprovider.cpp @@ -456,7 +456,7 @@ Qgis::VectorExportResult QgsSpatiaLiteProvider::createEmptyLayer( const QString } -QgsSpatiaLiteProvider::QgsSpatiaLiteProvider( QString const &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsSpatiaLiteProvider::QgsSpatiaLiteProvider( QString const &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { nDims = GAIA_XY; @@ -540,18 +540,18 @@ QgsSpatiaLiteProvider::QgsSpatiaLiteProvider( QString const &uri, const Provider } // TODO: move after pk discovery is definitely done? - mEnabledCapabilities = mPrimaryKey.isEmpty() ? QgsVectorDataProvider::Capabilities() : ( QgsVectorDataProvider::SelectAtId ); + mEnabledCapabilities = mPrimaryKey.isEmpty() ? Qgis::VectorProviderCapabilities() : ( Qgis::VectorProviderCapability::SelectAtId ); if ( ( mTableBased || mViewBased ) && !mReadOnly ) { // enabling editing only for Tables [excluding Views and VirtualShapes] - mEnabledCapabilities |= QgsVectorDataProvider::DeleteFeatures | QgsVectorDataProvider::FastTruncate; + mEnabledCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures | Qgis::VectorProviderCapability::FastTruncate; if ( !mGeometryColumn.isEmpty() ) - mEnabledCapabilities |= QgsVectorDataProvider::ChangeGeometries; - mEnabledCapabilities |= QgsVectorDataProvider::ChangeAttributeValues; - mEnabledCapabilities |= QgsVectorDataProvider::AddFeatures; - mEnabledCapabilities |= QgsVectorDataProvider::AddAttributes; - mEnabledCapabilities |= QgsVectorDataProvider::CreateAttributeIndex; - mEnabledCapabilities |= QgsVectorDataProvider::TransactionSupport; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeGeometries; + mEnabledCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddFeatures; + mEnabledCapabilities |= Qgis::VectorProviderCapability::AddAttributes; + mEnabledCapabilities |= Qgis::VectorProviderCapability::CreateAttributeIndex; + mEnabledCapabilities |= Qgis::VectorProviderCapability::TransactionSupport; } if ( lyr ) @@ -671,11 +671,11 @@ void QgsSpatiaLiteProvider::updatePrimaryKeyCapabilities() { if ( mPrimaryKey.isEmpty() ) { - mEnabledCapabilities &= ~QgsVectorDataProvider::SelectAtId; + mEnabledCapabilities.setFlag( Qgis::VectorProviderCapability::SelectAtId, false ); } else { - mEnabledCapabilities |= QgsVectorDataProvider::SelectAtId; + mEnabledCapabilities |= Qgis::VectorProviderCapability::SelectAtId; } } @@ -4902,7 +4902,7 @@ bool QgsSpatiaLiteProvider::changeGeometryValues( const QgsGeometryMap &geometry return true; } -QgsVectorDataProvider::Capabilities QgsSpatiaLiteProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsSpatiaLiteProvider::capabilities() const { return mEnabledCapabilities; } @@ -5922,7 +5922,7 @@ QVariantMap QgsSpatiaLiteProviderMetadata::decodeUri( const QString &uri ) const QgsSpatiaLiteProvider *QgsSpatiaLiteProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { return new QgsSpatiaLiteProvider( uri, options, flags ); } diff --git a/src/providers/spatialite/qgsspatialiteprovider.h b/src/providers/spatialite/qgsspatialiteprovider.h index 9845c5b0ed47..23ee64cbe916 100644 --- a/src/providers/spatialite/qgsspatialiteprovider.h +++ b/src/providers/spatialite/qgsspatialiteprovider.h @@ -28,13 +28,6 @@ extern "C" #include "qgsvectordataprovider.h" #include "qgsrectangle.h" #include "qgsfields.h" -#include "qgswkbtypes.h" - -#include -#include -#include -#include - #include "qgsprovidermetadata.h" class QgsFeature; @@ -81,7 +74,7 @@ class QgsSpatiaLiteProvider final: public QgsVectorDataProvider * \param uri uniform resource locator (URI) for a dataset * \param options generic data provider options */ - explicit QgsSpatiaLiteProvider( QString const &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + explicit QgsSpatiaLiteProvider( QString const &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~ QgsSpatiaLiteProvider() override; @@ -123,7 +116,7 @@ class QgsSpatiaLiteProvider final: public QgsVectorDataProvider bool addAttributes( const QList &attributes ) override; bool changeAttributeValues( const QgsChangedAttributesMap &attr_map ) override; bool changeGeometryValues( const QgsGeometryMap &geometry_map ) override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QVariant defaultValue( int fieldId ) const override; bool skipConstraintCheck( int fieldIndex, QgsFieldConstraints::Constraint constraint, const QVariant &value = QVariant() ) const override; bool createAttributeIndex( int field ) override; @@ -325,7 +318,7 @@ class QgsSpatiaLiteProvider final: public QgsVectorDataProvider //! this Geometry is supported by an MBR cache spatial index bool mSpatialIndexMbrCache = false; - QgsVectorDataProvider::Capabilities mEnabledCapabilities = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities mEnabledCapabilities; QgsField field( int index ) const; @@ -443,7 +436,7 @@ class QgsSpatiaLiteProviderMetadata final: public QgsProviderMetadata QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override; ProviderCapabilities providerCapabilities() const override; - QgsSpatiaLiteProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsSpatiaLiteProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; Qgis::VectorExportResult createEmptyLayer( const QString &uri, const QgsFields &fields, diff --git a/src/providers/virtual/qgsvirtuallayerprovider.cpp b/src/providers/virtual/qgsvirtuallayerprovider.cpp index be60dbd583fa..6881821cb823 100644 --- a/src/providers/virtual/qgsvirtuallayerprovider.cpp +++ b/src/providers/virtual/qgsvirtuallayerprovider.cpp @@ -46,7 +46,7 @@ const QString QgsVirtualLayerProvider::VIRTUAL_LAYER_QUERY_VIEW = QStringLiteral QgsVirtualLayerProvider::QgsVirtualLayerProvider( QString const &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ) { mError.clear(); @@ -617,13 +617,13 @@ bool QgsVirtualLayerProvider::isValid() const return mValid; } -QgsVectorDataProvider::Capabilities QgsVirtualLayerProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsVirtualLayerProvider::capabilities() const { - QgsVectorDataProvider::Capabilities capabilities = CancelSupport | QgsVectorDataProvider::Capability::ReloadData; + Qgis::VectorProviderCapabilities capabilities = Qgis::VectorProviderCapability::CancelSupport | Qgis::VectorProviderCapability::ReloadData; if ( !mDefinition.uid().isNull() ) { - capabilities |= SelectAtId; + capabilities |= Qgis::VectorProviderCapability::SelectAtId; } return capabilities; @@ -677,7 +677,7 @@ QSet QgsVirtualLayerProvider::dependencies() const QgsVirtualLayerProvider *QgsVirtualLayerProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, - QgsDataProvider::ReadFlags flags ) + Qgis::DataProviderReadFlags flags ) { return new QgsVirtualLayerProvider( uri, options, flags ); } diff --git a/src/providers/virtual/qgsvirtuallayerprovider.h b/src/providers/virtual/qgsvirtuallayerprovider.h index 5b56da33665d..6731d947e3c2 100644 --- a/src/providers/virtual/qgsvirtuallayerprovider.h +++ b/src/providers/virtual/qgsvirtuallayerprovider.h @@ -42,7 +42,7 @@ class QgsVirtualLayerProvider final: public QgsVectorDataProvider * \param uri uniform resource locator (URI) for a dataset * \param options generic data provider options */ - explicit QgsVirtualLayerProvider( QString const &uri, const ProviderOptions &coordinateTransformContext, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + explicit QgsVirtualLayerProvider( QString const &uri, const ProviderOptions &coordinateTransformContext, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); QgsAbstractFeatureSource *featureSource() const override; QString storageType() const override; @@ -56,7 +56,7 @@ class QgsVirtualLayerProvider final: public QgsVectorDataProvider bool supportsSubsetString() const override { return true; } QgsFields fields() const override; bool isValid() const override; - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QString name() const override; QString description() const override; QgsAttributeList pkAttributeIndexes() const override; @@ -139,7 +139,7 @@ class QgsVirtualLayerProviderMetadata final: public QgsProviderMetadata public: QgsVirtualLayerProviderMetadata(); QIcon icon() const override; - QgsVirtualLayerProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsVirtualLayerProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override; QList< Qgis::LayerType > supportedLayerTypes() const override; diff --git a/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp b/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp index 6ac34382abbf..b490b7fcef0d 100644 --- a/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp +++ b/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp @@ -127,7 +127,7 @@ struct VTable { throw std::runtime_error( ( "Provider error:" + mProvider->error().message() ).toUtf8().constData() ); } - if ( mProvider->capabilities() & QgsVectorDataProvider::SelectEncoding ) + if ( mProvider->capabilities() & Qgis::VectorProviderCapability::SelectEncoding ) { mProvider->setEncoding( mEncoding ); } diff --git a/src/providers/virtualraster/qgsvirtualrasterprovider.cpp b/src/providers/virtualraster/qgsvirtualrasterprovider.cpp index f37ad20f7673..dcc9cc1390dd 100644 --- a/src/providers/virtualraster/qgsvirtualrasterprovider.cpp +++ b/src/providers/virtualraster/qgsvirtualrasterprovider.cpp @@ -272,7 +272,7 @@ QIcon QgsVirtualRasterProviderMetadata::icon() const return QgsApplication::getThemeIcon( QStringLiteral( "mIconRaster.svg" ) ); } -QgsVirtualRasterProvider *QgsVirtualRasterProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsVirtualRasterProvider *QgsVirtualRasterProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { Q_UNUSED( flags ); return new QgsVirtualRasterProvider( uri, options ); diff --git a/src/providers/virtualraster/qgsvirtualrasterprovider.h b/src/providers/virtualraster/qgsvirtualrasterprovider.h index 5b356624a559..ec3fa5b88235 100644 --- a/src/providers/virtualraster/qgsvirtualrasterprovider.h +++ b/src/providers/virtualraster/qgsvirtualrasterprovider.h @@ -96,7 +96,7 @@ class QgsVirtualRasterProviderMetadata: public QgsProviderMetadata public: QgsVirtualRasterProviderMetadata(); QIcon icon() const override; - QgsVirtualRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsVirtualRasterProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override; QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override; QList< Qgis::LayerType > supportedLayerTypes() const override; diff --git a/src/providers/wcs/qgswcsprovider.cpp b/src/providers/wcs/qgswcsprovider.cpp index c86ab9acd34d..9d4d922882fc 100644 --- a/src/providers/wcs/qgswcsprovider.cpp +++ b/src/providers/wcs/qgswcsprovider.cpp @@ -57,7 +57,7 @@ static QString DEFAULT_LATLON_CRS = QStringLiteral( "CRS:84" ); // TODO: colortable - use common baseclass with gdal, mapserver does not support http://trac.osgeo.org/mapserver/ticket/1671 -QgsWcsProvider::QgsWcsProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsWcsProvider::QgsWcsProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsRasterDataProvider( uri, options, flags ) , mCachedViewExtent( 0 ) { @@ -1675,7 +1675,7 @@ QMap QgsWcsProvider::supportedMimes() return mimes; } -QgsWcsProvider *QgsWcsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsWcsProvider *QgsWcsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsWcsProvider( uri, options, flags ); } diff --git a/src/providers/wcs/qgswcsprovider.h b/src/providers/wcs/qgswcsprovider.h index 93a59fff3c73..71db685e23fd 100644 --- a/src/providers/wcs/qgswcsprovider.h +++ b/src/providers/wcs/qgswcsprovider.h @@ -121,7 +121,7 @@ class QgsWcsProvider final: public QgsRasterDataProvider, QgsGdalProviderBase * otherwise we contact the host directly. * \param options generic data provider options */ - explicit QgsWcsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags ); + explicit QgsWcsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags ); //! copy constructor explicit QgsWcsProvider( const QgsWcsProvider &other, const QgsDataProvider::ProviderOptions &providerOptions ); @@ -451,7 +451,7 @@ class QgsWcsProviderMetadata final: public QgsProviderMetadata public: QgsWcsProviderMetadata(); QIcon icon() const override; - QgsWcsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsWcsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList dataItemProviders() const override; QVariantMap decodeUri( const QString &uri ) const override; QString encodeUri( const QVariantMap &parts ) const override; diff --git a/src/providers/wfs/oapif/qgsoapifprovider.cpp b/src/providers/wfs/oapif/qgsoapifprovider.cpp index e42cfd4d8d35..21b8d29808ed 100644 --- a/src/providers/wfs/oapif/qgsoapifprovider.cpp +++ b/src/providers/wfs/oapif/qgsoapifprovider.cpp @@ -42,7 +42,7 @@ const QString QgsOapifProvider::OAPIF_PROVIDER_DESCRIPTION = QStringLiteral( "OG const QString QgsOapifProvider::OAPIF_PROVIDER_DEFAULT_CRS = QStringLiteral( "http://www.opengis.net/def/crs/OGC/1.3/CRS84" ); -QgsOapifProvider::QgsOapifProvider( const QString &uri, const ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsOapifProvider::QgsOapifProvider( const QString &uri, const ProviderOptions &options, Qgis::DataProviderReadFlags flags ) : QgsVectorDataProvider( uri, options, flags ), mShared( new QgsOapifSharedData( uri ) ) { @@ -418,9 +418,9 @@ bool QgsOapifProvider::isValid() const void QgsOapifProvider::computeCapabilities( const QgsOapifItemsRequest &itemsRequest ) { - mCapabilities = QgsVectorDataProvider::SelectAtId | - QgsVectorDataProvider::ReadLayerMetadata | - QgsVectorDataProvider::Capability::ReloadData; + mCapabilities = Qgis::VectorProviderCapability::SelectAtId | + Qgis::VectorProviderCapability::ReadLayerMetadata | + Qgis::VectorProviderCapability::ReloadData; // Determine edition capabilities: create (POST on /items), // update (PUT on /items/some_id) and delete (DELETE on /items/some_id) @@ -430,7 +430,7 @@ void QgsOapifProvider::computeCapabilities( const QgsOapifItemsRequest &itemsReq QStringList supportedOptions = optionsItemsRequest.sendOPTIONS( mShared->mItemsUrl ); if ( supportedOptions.contains( QLatin1String( "POST" ) ) ) { - mCapabilities |= QgsVectorDataProvider::AddFeatures; + mCapabilities |= Qgis::VectorProviderCapability::AddFeatures; const auto &features = itemsRequest.features(); QString testId; @@ -452,12 +452,12 @@ void QgsOapifProvider::computeCapabilities( const QgsOapifItemsRequest &itemsReq supportedOptions = optionsOneItemRequest.sendOPTIONS( url ); if ( supportedOptions.contains( QLatin1String( "PUT" ) ) ) { - mCapabilities |= QgsVectorDataProvider::ChangeAttributeValues; - mCapabilities |= QgsVectorDataProvider::ChangeGeometries; + mCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues; + mCapabilities |= Qgis::VectorProviderCapability::ChangeGeometries; } if ( supportedOptions.contains( QLatin1String( "DELETE" ) ) ) { - mCapabilities |= QgsVectorDataProvider::DeleteFeatures; + mCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures; } if ( supportedOptions.contains( QLatin1String( "PATCH" ) ) ) { @@ -466,7 +466,7 @@ void QgsOapifProvider::computeCapabilities( const QgsOapifItemsRequest &itemsReq } } -QgsVectorDataProvider::Capabilities QgsOapifProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsOapifProvider::capabilities() const { return mCapabilities; } @@ -1469,7 +1469,7 @@ void QgsOapifFeatureDownloaderImpl::run( bool serializeFeatures, long long maxFe // --------------------------------- -QgsOapifProvider *QgsOapifProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsOapifProvider *QgsOapifProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { return new QgsOapifProvider( uri, options, flags ); } diff --git a/src/providers/wfs/oapif/qgsoapifprovider.h b/src/providers/wfs/oapif/qgsoapifprovider.h index 562c23d6cfc1..e81f0bf393ae 100644 --- a/src/providers/wfs/oapif/qgsoapifprovider.h +++ b/src/providers/wfs/oapif/qgsoapifprovider.h @@ -43,7 +43,7 @@ class QgsOapifProvider final: public QgsVectorDataProvider static const QString OAPIF_PROVIDER_DEFAULT_CRS; - explicit QgsOapifProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ); + explicit QgsOapifProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ); ~QgsOapifProvider() override; /* Inherited from QgsVectorDataProvider */ @@ -75,7 +75,7 @@ class QgsOapifProvider final: public QgsVectorDataProvider static QString providerKey(); - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QgsLayerMetadata layerMetadata() const override { return mLayerMetadata; } @@ -114,7 +114,7 @@ class QgsOapifProvider final: public QgsVectorDataProvider bool mValid = true; //! Server capabilities for this layer (generated from capabilities document) - QgsVectorDataProvider::Capabilities mCapabilities = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities mCapabilities; //! Whether server supports PATCH operation bool mSupportsPatch = false; @@ -146,7 +146,7 @@ class QgsOapifProviderMetadata final: public QgsProviderMetadata public: QgsOapifProviderMetadata(); QIcon icon() const override; - QgsOapifProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsOapifProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; }; diff --git a/src/providers/wfs/qgswfsprovider.cpp b/src/providers/wfs/qgswfsprovider.cpp index 1c58100f4def..593fe8b4d9c7 100644 --- a/src/providers/wfs/qgswfsprovider.cpp +++ b/src/providers/wfs/qgswfsprovider.cpp @@ -2439,7 +2439,7 @@ QString QgsWFSProvider::description() const return WFS_PROVIDER_DESCRIPTION; } -QgsVectorDataProvider::Capabilities QgsWFSProvider::capabilities() const +Qgis::VectorProviderCapabilities QgsWFSProvider::capabilities() const { return mCapabilities; } @@ -2621,7 +2621,7 @@ QStringList QgsWFSProvider::insertedFeatureIds( const QDomDocument &serverRespon bool QgsWFSProvider::getCapabilities() { - mCapabilities = QgsVectorDataProvider::SelectAtId | QgsVectorDataProvider::Capability::ReloadData; + mCapabilities = Qgis::VectorProviderCapability::SelectAtId | Qgis::VectorProviderCapability::ReloadData; if ( mShared->mCaps.version.isEmpty() ) { @@ -2729,16 +2729,16 @@ bool QgsWFSProvider::getCapabilities() } if ( mShared->mCaps.featureTypes[i].insertCap ) { - mCapabilities |= QgsVectorDataProvider::AddFeatures; + mCapabilities |= Qgis::VectorProviderCapability::AddFeatures; } if ( mShared->mCaps.featureTypes[i].updateCap ) { - mCapabilities |= QgsVectorDataProvider::ChangeAttributeValues; - mCapabilities |= QgsVectorDataProvider::ChangeGeometries; + mCapabilities |= Qgis::VectorProviderCapability::ChangeAttributeValues; + mCapabilities |= Qgis::VectorProviderCapability::ChangeGeometries; } if ( mShared->mCaps.featureTypes[i].deleteCap ) { - mCapabilities |= QgsVectorDataProvider::DeleteFeatures; + mCapabilities |= Qgis::VectorProviderCapability::DeleteFeatures; } foundLayer = true; diff --git a/src/providers/wfs/qgswfsprovider.h b/src/providers/wfs/qgswfsprovider.h index 02e1afc2190d..bafd16300f31 100644 --- a/src/providers/wfs/qgswfsprovider.h +++ b/src/providers/wfs/qgswfsprovider.h @@ -98,7 +98,7 @@ class QgsWFSProvider final: public QgsVectorDataProvider static QString providerKey(); - QgsVectorDataProvider::Capabilities capabilities() const override; + Qgis::VectorProviderCapabilities capabilities() const override; QString storageType() const override { return QStringLiteral( "OGC WFS (Web Feature Service)" ); } @@ -212,7 +212,7 @@ class QgsWFSProvider final: public QgsVectorDataProvider //! Namespace URL of the server (comes from DescribeFeatureDocument) QString mApplicationNamespace; //! Server capabilities for this layer (generated from capabilities document) - QgsVectorDataProvider::Capabilities mCapabilities = QgsVectorDataProvider::Capabilities(); + Qgis::VectorProviderCapabilities mCapabilities; //! Fields of this typename. Might be different from mShared->mFields in case of SELECT QgsFields mThisTypenameFields; diff --git a/src/providers/wfs/qgswfsprovidermetadata.cpp b/src/providers/wfs/qgswfsprovidermetadata.cpp index 146fcf94c40d..4d493250fda9 100644 --- a/src/providers/wfs/qgswfsprovidermetadata.cpp +++ b/src/providers/wfs/qgswfsprovidermetadata.cpp @@ -40,7 +40,7 @@ #include #include -QgsDataProvider *QgsWfsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsDataProvider *QgsWfsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { Q_UNUSED( flags ); return new QgsWFSProvider( uri, options ); diff --git a/src/providers/wfs/qgswfsprovidermetadata.h b/src/providers/wfs/qgswfsprovidermetadata.h index 597fe8538ec9..57b52d6edb98 100644 --- a/src/providers/wfs/qgswfsprovidermetadata.h +++ b/src/providers/wfs/qgswfsprovidermetadata.h @@ -31,7 +31,7 @@ class QgsWfsProviderMetadata final: public QgsProviderMetadata QgsWfsProviderMetadata(); QIcon icon() const override; QList dataItemProviders() const override; - QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; QList< Qgis::LayerType > supportedLayerTypes() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override; diff --git a/src/providers/wms/qgswmsprovider.cpp b/src/providers/wms/qgswmsprovider.cpp index ec62f424f496..ffb24619601a 100644 --- a/src/providers/wms/qgswmsprovider.cpp +++ b/src/providers/wms/qgswmsprovider.cpp @@ -4460,7 +4460,7 @@ bool QgsWmsProvider::isUrlForWMTS( const QString &url ) } -QgsWmsProvider *QgsWmsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) +QgsWmsProvider *QgsWmsProviderMetadata::createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) { Q_UNUSED( flags ); return new QgsWmsProvider( uri, options ); diff --git a/src/providers/wms/qgswmsprovider.h b/src/providers/wms/qgswmsprovider.h index 0998901f238f..4bb1bb140997 100644 --- a/src/providers/wms/qgswmsprovider.h +++ b/src/providers/wms/qgswmsprovider.h @@ -737,7 +737,7 @@ class QgsWmsProviderMetadata final: public QgsProviderMetadata QIcon icon() const override; QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const override; - QgsWmsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override; + QgsWmsProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override; ProviderCapabilities providerCapabilities() const override; QList dataItemProviders() const override; diff --git a/src/server/services/wfs/qgswfsgetcapabilities.cpp b/src/server/services/wfs/qgswfsgetcapabilities.cpp index f6fa726fd90c..74463dc678aa 100644 --- a/src/server/services/wfs/qgswfsgetcapabilities.cpp +++ b/src/server/services/wfs/qgswfsgetcapabilities.cpp @@ -545,7 +545,7 @@ namespace QgsWfs { QgsVectorLayer *vlayer = qobject_cast( layer ); QgsVectorDataProvider *provider = vlayer->dataProvider(); - if ( ( provider->capabilities() & QgsVectorDataProvider::AddFeatures ) && wfstInsertLayersId.contains( layer->id() ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) && wfstInsertLayersId.contains( layer->id() ) ) { //wfs:Insert element QDomElement operationElement = doc.createElement( QStringLiteral( "Operation" ) ); @@ -554,8 +554,8 @@ namespace QgsWfs operationsElement.appendChild( operationElement ); } - if ( ( provider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) && - ( provider->capabilities() & QgsVectorDataProvider::ChangeGeometries ) && + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) && + ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) && wfstUpdateLayersId.contains( layer->id() ) ) { //wfs:Update element @@ -565,7 +565,7 @@ namespace QgsWfs operationsElement.appendChild( operationElement ); } - if ( ( provider->capabilities() & QgsVectorDataProvider::DeleteFeatures ) && wfstDeleteLayersId.contains( layer->id() ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) && wfstDeleteLayersId.contains( layer->id() ) ) { //wfs:Delete element QDomElement operationElement = doc.createElement( QStringLiteral( "Operation" ) ); diff --git a/src/server/services/wfs/qgswfsgetcapabilities_1_0_0.cpp b/src/server/services/wfs/qgswfsgetcapabilities_1_0_0.cpp index e0ec87410b6c..96471bca960e 100644 --- a/src/server/services/wfs/qgswfsgetcapabilities_1_0_0.cpp +++ b/src/server/services/wfs/qgswfsgetcapabilities_1_0_0.cpp @@ -398,21 +398,21 @@ namespace QgsWfs { QgsVectorLayer *vlayer = qobject_cast( layer ); QgsVectorDataProvider *provider = vlayer->dataProvider(); - if ( ( provider->capabilities() & QgsVectorDataProvider::AddFeatures ) && wfstInsertLayersId.contains( layer->id() ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::AddFeatures ) && wfstInsertLayersId.contains( layer->id() ) ) { //wfs:Insert element const QDomElement insertElement = doc.createElement( QStringLiteral( "Insert" )/*wfs:Insert*/ ); operationsElement.appendChild( insertElement ); } - if ( ( provider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) && - ( provider->capabilities() & QgsVectorDataProvider::ChangeGeometries ) && + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeAttributeValues ) && + ( provider->capabilities() & Qgis::VectorProviderCapability::ChangeGeometries ) && wfstUpdateLayersId.contains( layer->id() ) ) { //wfs:Update element const QDomElement updateElement = doc.createElement( QStringLiteral( "Update" )/*wfs:Update*/ ); operationsElement.appendChild( updateElement ); } - if ( ( provider->capabilities() & QgsVectorDataProvider::DeleteFeatures ) && wfstDeleteLayersId.contains( layer->id() ) ) + if ( ( provider->capabilities() & Qgis::VectorProviderCapability::DeleteFeatures ) && wfstDeleteLayersId.contains( layer->id() ) ) { //wfs:Delete element const QDomElement deleteElement = doc.createElement( QStringLiteral( "Delete" )/*wfs:Delete*/ ); diff --git a/src/server/services/wfs/qgswfstransaction.cpp b/src/server/services/wfs/qgswfstransaction.cpp index c0a2ae1fc1a0..f8df352e6e22 100644 --- a/src/server/services/wfs/qgswfstransaction.cpp +++ b/src/server/services/wfs/qgswfstransaction.cpp @@ -295,9 +295,9 @@ namespace QgsWfs } // get provider capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::ChangeAttributeValues ) && !( cap & QgsVectorDataProvider::ChangeGeometries ) - && !( cap & QgsVectorDataProvider::DeleteFeatures ) && !( cap & QgsVectorDataProvider::AddFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::ChangeAttributeValues ) && !( cap & Qgis::VectorProviderCapability::ChangeGeometries ) + && !( cap & Qgis::VectorProviderCapability::DeleteFeatures ) && !( cap & Qgis::VectorProviderCapability::AddFeatures ) ) { throw QgsRequestNotWellFormedException( QStringLiteral( "No capabilities to do WFS changes on layer '%1'" ).arg( name ) ); } @@ -360,8 +360,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::ChangeAttributeValues ) || !( cap & QgsVectorDataProvider::ChangeGeometries ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::ChangeAttributeValues ) || !( cap & Qgis::VectorProviderCapability::ChangeGeometries ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS updates on layer '%1'" ).arg( typeName ); @@ -578,8 +578,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::DeleteFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::DeleteFeatures ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS deletes on layer '%1'" ).arg( typeName ); @@ -696,8 +696,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::AddFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::AddFeatures ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS inserts on layer '%1'" ).arg( typeName ); diff --git a/src/server/services/wfs/qgswfstransaction_1_0_0.cpp b/src/server/services/wfs/qgswfstransaction_1_0_0.cpp index 1972caf15cf8..1a9b40ac29ee 100644 --- a/src/server/services/wfs/qgswfstransaction_1_0_0.cpp +++ b/src/server/services/wfs/qgswfstransaction_1_0_0.cpp @@ -275,9 +275,9 @@ namespace QgsWfs } // get provider capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::ChangeAttributeValues ) && !( cap & QgsVectorDataProvider::ChangeGeometries ) - && !( cap & QgsVectorDataProvider::DeleteFeatures ) && !( cap & QgsVectorDataProvider::AddFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::ChangeAttributeValues ) && !( cap & Qgis::VectorProviderCapability::ChangeGeometries ) + && !( cap & Qgis::VectorProviderCapability::DeleteFeatures ) && !( cap & Qgis::VectorProviderCapability::AddFeatures ) ) { throw QgsRequestNotWellFormedException( QStringLiteral( "No capabilities to do WFS changes on layer '%1'" ).arg( name ) ); } @@ -340,8 +340,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::ChangeAttributeValues ) || !( cap & QgsVectorDataProvider::ChangeGeometries ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::ChangeAttributeValues ) || !( cap & Qgis::VectorProviderCapability::ChangeGeometries ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS updates on layer '%1'" ).arg( typeName ); @@ -557,8 +557,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::DeleteFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::DeleteFeatures ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS deletes on layer '%1'" ).arg( typeName ); @@ -674,8 +674,8 @@ namespace QgsWfs QgsVectorDataProvider *provider = vlayer->dataProvider(); // verifying specific capabilities - int cap = provider->capabilities(); - if ( !( cap & QgsVectorDataProvider::AddFeatures ) ) + Qgis::VectorProviderCapabilities cap = provider->capabilities(); + if ( !( cap & Qgis::VectorProviderCapability::AddFeatures ) ) { action.error = true; action.errorMsg = QStringLiteral( "No capabilities to do WFS inserts on layer '%1'" ).arg( typeName ); diff --git a/src/server/services/wfs3/qgswfs3handlers.cpp b/src/server/services/wfs3/qgswfs3handlers.cpp index be9df15fb351..a1feeac9626d 100644 --- a/src/server/services/wfs3/qgswfs3handlers.cpp +++ b/src/server/services/wfs3/qgswfs3handlers.cpp @@ -1569,7 +1569,7 @@ void QgsWfs3CollectionsItemsHandler::handleRequest( const QgsServerApiContext &c { // First: check permissions const QStringList wfstInsertLayerIds = QgsServerProjectUtils::wfstInsertLayerIds( *context.project() ); - if ( ! wfstInsertLayerIds.contains( mapLayer->id() ) || ! mapLayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::AddFeatures ) ) + if ( ! wfstInsertLayerIds.contains( mapLayer->id() ) || ! mapLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::AddFeatures ) ) { throw QgsServerApiPermissionDeniedException( QStringLiteral( "Features cannot be added to layer '%1'" ).arg( mapLayer->name() ) ); } @@ -1832,8 +1832,8 @@ void QgsWfs3CollectionsFeatureHandler::handleRequest( const QgsServerApiContext // First: check permissions const QStringList wfstUpdateLayerIds = QgsServerProjectUtils::wfstUpdateLayerIds( *context.project() ); if ( ! wfstUpdateLayerIds.contains( mapLayer->id() ) || - ! mapLayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::ChangeGeometries ) || - ! mapLayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::ChangeAttributeValues ) ) + ! mapLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeGeometries ) || + ! mapLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeAttributeValues ) ) { throw QgsServerApiPermissionDeniedException( QStringLiteral( "Features in layer '%1' cannot be changed" ).arg( mapLayer->name() ) ); } @@ -1966,7 +1966,7 @@ void QgsWfs3CollectionsFeatureHandler::handleRequest( const QgsServerApiContext // First: check permissions const QStringList wfstUpdateLayerIds = QgsServerProjectUtils::wfstUpdateLayerIds( *context.project() ); if ( ! wfstUpdateLayerIds.contains( mapLayer->id() ) || - ! mapLayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::ChangeAttributeValues ) ) + ! mapLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::ChangeAttributeValues ) ) { throw QgsServerApiPermissionDeniedException( QStringLiteral( "Feature attributes in layer '%1' cannot be changed" ).arg( mapLayer->name() ) ); } @@ -2089,7 +2089,7 @@ void QgsWfs3CollectionsFeatureHandler::handleRequest( const QgsServerApiContext // First: check permissions const QStringList wfstUpdateLayerIds = QgsServerProjectUtils::wfstDeleteLayerIds( *context.project() ); if ( ! wfstUpdateLayerIds.contains( mapLayer->id() ) || - ! mapLayer->dataProvider()->capabilities().testFlag( QgsVectorDataProvider::Capability::DeleteFeatures ) ) + ! mapLayer->dataProvider()->capabilities().testFlag( Qgis::VectorProviderCapability::DeleteFeatures ) ) { throw QgsServerApiPermissionDeniedException( QStringLiteral( "Features in layer '%1' cannot be deleted" ).arg( mapLayer->name() ) ); } diff --git a/tests/src/core/testqgsproject.cpp b/tests/src/core/testqgsproject.cpp index bda528eb36bf..4b86fc720008 100644 --- a/tests/src/core/testqgsproject.cpp +++ b/tests/src/core/testqgsproject.cpp @@ -424,7 +424,7 @@ void TestQgsProject::testLayerFlags() QVERIFY( vlayer->readExtentFromXml() ); // vlayer doesn't have trust because it will be done for new layer or when reloading the project // no need to set trust on a layer which has already loaded everything - QVERIFY( !vlayer->dataProvider()->mReadFlags.testFlag( QgsDataProvider::FlagTrustDataSource ) ); + QVERIFY( !vlayer->dataProvider()->mReadFlags.testFlag( Qgis::DataProviderReadFlag::TrustDataSource ) ); QVERIFY( vlayer->dataProvider()->providerProperty( QgsVectorDataProvider::EvaluateDefaultValues ).toBool() ); prj2.write(); @@ -444,7 +444,7 @@ void TestQgsProject::testLayerFlags() QVERIFY( !vlayer->mReadFlags.testFlag( QgsMapLayer::FlagForceReadOnly ) ); QVERIFY( !prj3.isDirty() ); QVERIFY( vlayer->readExtentFromXml() ); - QVERIFY( vlayer->dataProvider()->mReadFlags.testFlag( QgsDataProvider::FlagTrustDataSource ) ); + QVERIFY( vlayer->dataProvider()->mReadFlags.testFlag( Qgis::DataProviderReadFlag::TrustDataSource ) ); QVERIFY( vlayer->dataProvider()->providerProperty( QgsVectorDataProvider::EvaluateDefaultValues ).toBool() ); // check reload of project with read fags that sets the correct layer properties