1 /*************************************************************************** 2 qgsgeometrysegmentlengthcheck.h 3 --------------------- 4 begin : September 2015 5 copyright : (C) 2014 by Sandro Mani / Sourcepole AG 6 email : smani at sourcepole dot ch 7 *************************************************************************** 8 * * 9 * This program is free software; you can redistribute it and/or modify * 10 * it under the terms of the GNU General Public License as published by * 11 * the Free Software Foundation; either version 2 of the License, or * 12 * (at your option) any later version. * 13 * * 14 ***************************************************************************/ 15 16 #define SIP_NO_FILE 17 18 #ifndef QGS_GEOMETRY_SEGMENTLENGTH_CHECK_H 19 #define QGS_GEOMETRY_SEGMENTLENGTH_CHECK_H 20 21 #include "qgsgeometrycheck.h" 22 23 /** 24 * \ingroup analysis 25 * \brief A segment length check. 26 */ 27 class ANALYSIS_EXPORT QgsGeometrySegmentLengthCheck : public QgsGeometryCheck 28 { Q_DECLARE_TR_FUNCTIONS(QgsGeometrySegmentLengthCheck)29 Q_DECLARE_TR_FUNCTIONS( QgsGeometrySegmentLengthCheck ) 30 public: 31 QgsGeometrySegmentLengthCheck( QgsGeometryCheckContext *context, const QVariantMap &configuration ) 32 : QgsGeometryCheck( context, configuration ) 33 , mMinLengthMapUnits( configuration.value( "minSegmentLength" ).toDouble() ) 34 {} factoryCompatibleGeometryTypes()35 static QList<QgsWkbTypes::GeometryType> factoryCompatibleGeometryTypes() {return {QgsWkbTypes::LineGeometry, QgsWkbTypes::PolygonGeometry}; } factoryIsCompatible(QgsVectorLayer * layer)36 static bool factoryIsCompatible( QgsVectorLayer *layer ) SIP_SKIP { return factoryCompatibleGeometryTypes().contains( layer->geometryType() ); } compatibleGeometryTypes()37 QList<QgsWkbTypes::GeometryType> compatibleGeometryTypes() const override { return factoryCompatibleGeometryTypes(); } 38 void collectErrors( const QMap<QString, QgsFeaturePool *> &featurePools, QList<QgsGeometryCheckError *> &errors, QStringList &messages, QgsFeedback *feedback, const LayerFeatureIds &ids = LayerFeatureIds() ) const override; 39 void fixError( const QMap<QString, QgsFeaturePool *> &featurePools, QgsGeometryCheckError *error, int method, const QMap<QString, int> &mergeAttributeIndices, Changes &changes ) const override; 40 Q_DECL_DEPRECATED QStringList resolutionMethods() const override; factoryDescription()41 static QString factoryDescription() { return tr( "Minimal segment length" ); } description()42 QString description() const override { return factoryDescription(); } factoryId()43 static QString factoryId() { return QStringLiteral( "QgsGeometrySegmentLengthCheck" ); } id()44 QString id() const override { return factoryId(); } checkType()45 QgsGeometryCheck::CheckType checkType() const override { return factoryCheckType(); } 46 static QgsGeometryCheck::CheckType factoryCheckType() SIP_SKIP; 47 48 enum ResolutionMethod { NoChange }; 49 50 private: 51 double mMinLengthMapUnits; 52 }; 53 54 #endif // QGS_GEOMETRY_SEGMENTLENGTH_CHECK_H 55