diff --git a/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheck.sip.in b/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheck.sip.in index 9e28feaba7d..de83a1d3231 100644 --- a/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheck.sip.in +++ b/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheck.sip.in @@ -164,6 +164,10 @@ Returns the context protected: + + + + }; /************************************************************************ diff --git a/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheckerutils.sip.in b/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheckerutils.sip.in index 4c4d84f02b5..a1c57694a1c 100644 --- a/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheckerutils.sip.in +++ b/python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheckerutils.sip.in @@ -10,7 +10,6 @@ - class QgsGeometryCheckerUtils { %Docstring @@ -28,8 +27,16 @@ Contains utilities required for geometry checks. #include "qgsgeometrycheckerutils.h" %End public: + class LayerFeature { +%Docstring + +A layer feature combination to uniquely identify and access a feature in +a set of layers. + +.. versionadded:: 3.4 +%End %TypeHeaderCode #include "qgsgeometrycheckerutils.h" @@ -79,6 +86,12 @@ Returns if the geometry is reprojected to the map CRS or not. class LayerFeatures { +%Docstring + +Contains a set of layers and feature ids in those layers to pass to a geometry check. + +.. versionadded:: 3.4 +%End %TypeHeaderCode #include "qgsgeometrycheckerutils.h" diff --git a/src/analysis/vector/geometry_checker/qgsgeometrycheck.h b/src/analysis/vector/geometry_checker/qgsgeometrycheck.h index 97db5300cd4..d193402b55e 100644 --- a/src/analysis/vector/geometry_checker/qgsgeometrycheck.h +++ b/src/analysis/vector/geometry_checker/qgsgeometrycheck.h @@ -253,14 +253,48 @@ class ANALYSIS_EXPORT QgsGeometryCheck const QgsGeometryCheckContext *context() const { return mContext; } protected: + + /** + * Returns all layers and feature ids. + * + * \since QGIS 3.4 + * \note Not available in Python bindings + */ QMap allLayerFeatureIds( const QMap &featurePools ) const SIP_SKIP; + + /** + * Replaces a part in a feature geometry. + * + * \since QGIS 3.4 + * \note Not available in Python bindings + */ void replaceFeatureGeometryPart( const QMap &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, QgsAbstractGeometry *newPartGeom, Changes &changes ) const SIP_SKIP; + + /** + * Deletes a part of a feature geometry. + * + * \since QGIS 3.4 + * \note Not available in Python bindings + */ void deleteFeatureGeometryPart( const QMap &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, Changes &changes ) const SIP_SKIP; + + /** + * Deletes a ring in a feature geometry. + * + * \since QGIS 3.4 + * \note Not available in Python bindings + */ void deleteFeatureGeometryRing( const QMap &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, int ringIdx, Changes &changes ) const SIP_SKIP; const QgsGeometryCheckContext *mContext; QVariantMap mConfiguration; + /** + * Determin the scale factor of a layer to the map coordiante reference system. + * + * \since QGIS 3.4 + * \note Not available in Python bindings + */ double scaleFactor( const QPointer &layer ) const SIP_SKIP; }; diff --git a/src/analysis/vector/geometry_checker/qgsgeometrycheckerutils.h b/src/analysis/vector/geometry_checker/qgsgeometrycheckerutils.h index 4a3c6f5883f..9a91b4e60e9 100644 --- a/src/analysis/vector/geometry_checker/qgsgeometrycheckerutils.h +++ b/src/analysis/vector/geometry_checker/qgsgeometrycheckerutils.h @@ -39,6 +39,7 @@ class QgsFeedback; class ANALYSIS_EXPORT QgsGeometryCheckerUtils { public: + /** * \ingroup analysis * @@ -128,7 +129,7 @@ class ANALYSIS_EXPORT QgsGeometryCheckerUtils * \ingroup analysis * * An iterator over all features in a QgsGeometryCheckerUtils::LayerFeatures. - * + * * \since QGIS 3.4 */ class iterator diff --git a/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.h b/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.h index bbfc10d87a4..27b8594b5ef 100644 --- a/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.h +++ b/src/analysis/vector/geometry_checker/qgsgeometryisvalidcheck.h @@ -20,6 +20,14 @@ email : matthias@opengis.ch #include "qgssinglegeometrycheck.h" +/** + * \ingroup analysis + * + * An error for a QgsGeometryIsValid check. + * The description is delivered by the underlying check engine, either GEOS or QGIS internal. + * + * \since QGIS 3.4 + */ class ANALYSIS_EXPORT QgsGeometryIsValidCheckError : public QgsSingleGeometryCheckError { public: @@ -40,6 +48,10 @@ class ANALYSIS_EXPORT QgsGeometryIsValidCheckError : public QgsSingleGeometryChe class ANALYSIS_EXPORT QgsGeometryIsValidCheck : public QgsSingleGeometryCheck { public: + + /** + * Creates a new is valid check with the provided \a context. No options are supported in \a configuration. + */ explicit QgsGeometryIsValidCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration ); QList compatibleGeometryTypes() const override; diff --git a/tests/code_layout/acceptable_missing_doc.py b/tests/code_layout/acceptable_missing_doc.py index c8f3ceed1ae..21fe479dd1e 100644 --- a/tests/code_layout/acceptable_missing_doc.py +++ b/tests/code_layout/acceptable_missing_doc.py @@ -489,7 +489,8 @@ ACCEPTABLE_MISSING_DOCS = { "QgsGeometrySelfIntersectionCheck": ["QgsGeometrySelfIntersectionCheck(const QgsGeometryCheckContext *context, const QVariantMap &configuration=QVariantMap())", "ResolutionMethod"], "QgsGeometryContainedCheck": ["factoryDescription()", "factoryId()", "factoryCompatibleGeometryTypes()", "factoryIsCompatible(QgsVectorLayer *layer)", "ResolutionMethod", "factoryCheckType()", "QgsGeometryContainedCheck(QgsGeometryCheckContext *context, const QVariantMap &configuration)"], "QgsGeometryPointInPolygonCheck": ["factoryDescription()", "factoryId()", "factoryCompatibleGeometryTypes()", "factoryIsCompatible(QgsVectorLayer *layer)", "ResolutionMethod", "factoryCheckType()", "QgsGeometryPointInPolygonCheck(QgsGeometryCheckContext *context, const QVariantMap &configuration)"], - "QgsGeometryDuplicateNodesCheck": ["factoryDescription()", "factoryId()", "factoryCompatibleGeometryTypes()", "factoryIsCompatible(QgsVectorLayer *layer)", "ResolutionMethod", "factoryCheckType()", "QgsGeometryDuplicateNodesCheck(QgsGeometryCheckContext *context, const QVariantMap &configuration)"] + "QgsGeometryDuplicateNodesCheck": ["factoryDescription()", "factoryId()", "factoryCompatibleGeometryTypes()", "factoryIsCompatible(QgsVectorLayer *layer)", "ResolutionMethod", "factoryCheckType()", "QgsGeometryDuplicateNodesCheck(QgsGeometryCheckContext *context, const QVariantMap &configuration)"], + "QgsGeometryChecker": ["getContext() const", "featurePools() const", "setMergeAttributeIndices(const QMap< QString, int > &mergeAttributeIndices)", "progressValue(int value)", "getChecks() const", "errorAdded(QgsGeometryCheckError *error)", "QgsGeometryChecker(const QList< QgsGeometryCheck * > &checks, QgsGeometryCheckContext *context, const QMap< QString, QgsFeaturePool * > &featurePools)", "fixError(QgsGeometryCheckError *error, int method, bool triggerRepaint=false)", "errorUpdated(QgsGeometryCheckError *error, bool statusChanged)", "execute(int *totalSteps=nullptr)", "getMessages() const"] } ACCEPTABLE_MISSING_ADDED_NOTE = [