QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsgeometrycheckerror.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsgeometrycheckerror.h
3  --------
4  begin : September 2018
5  copyright : (C) 2018 by Denis Rouzaud
6  email : [email protected]
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSGEOMETRYCHECKERROR_H
19 #define QGSGEOMETRYCHECKERROR_H
20 
21 #include "qgis_analysis.h"
22 
23 #include "qgsgeometrycheck.h"
25 
26 class QgsPointXY;
27 
35 class ANALYSIS_EXPORT QgsGeometryCheckError
36 {
37  public:
38 
42  enum Status
43  {
47  StatusObsolete
48  };
49 
53  enum ValueType
54  {
57  ValueOther
58  };
59 
67  const QgsGeometryCheckerUtils::LayerFeature &layerFeature,
68  const QgsPointXY &errorLocation,
69  QgsVertexId vidx = QgsVertexId(),
70  const QVariant &value = QVariant(),
71  ValueType valueType = ValueOther );
72 
73  virtual ~QgsGeometryCheckError() = default;
74 
75  const QgsGeometryCheckError &operator=( const QgsGeometryCheckError & ) = delete;
76 
80  const QgsGeometryCheck *check() const { return mCheck; }
81 
85  const QString &layerId() const { return mLayerId; }
86 
90  QgsFeatureId featureId() const { return mFeatureId; }
91 
95  QgsGeometry geometry() const;
96 
105  virtual QgsRectangle contextBoundingBox() const;
106 
110  virtual QgsRectangle affectedAreaBBox() const;
111 
116  virtual QString description() const { return mCheck->description(); }
117 
121  const QgsPointXY &location() const { return mErrorLocation; }
122 
128  QVariant value() const { return mValue; }
129 
134  ValueType valueType() const { return mValueType; }
135 
140  const QgsVertexId &vidx() const { return mVidx; }
141 
145  Status status() const { return mStatus; }
146 
150  QString resolutionMessage() const { return mResolutionMessage; }
151 
156  void setFixed( int method );
157 
161  void setFixFailed( const QString &reason );
162 
166  void setObsolete() { mStatus = StatusObsolete; }
167 
173  virtual bool isEqual( QgsGeometryCheckError *other ) const;
174 
179  virtual bool closeMatch( QgsGeometryCheckError * /*other*/ ) const;
180 
185  virtual void update( const QgsGeometryCheckError *other );
186 
190  virtual bool handleChanges( const QgsGeometryCheck::Changes &changes ) SIP_SKIP;
191 
199  virtual QMap<QString, QgsFeatureIds > involvedFeatures() const SIP_SKIP;
200 
206  virtual QIcon icon() const;
207  protected:
208 
218  const QString &layerId,
219  QgsFeatureId featureId,
220  const QgsGeometry &geometry,
221  const QgsPointXY &errorLocation,
222  QgsVertexId vidx = QgsVertexId(),
223  const QVariant &value = QVariant(),
224  ValueType valueType = ValueOther );
225 
226  const QgsGeometryCheck *mCheck = nullptr;
227  QString mLayerId;
228  QgsFeatureId mFeatureId;
229  QgsGeometry mGeometry;
230  QgsPointXY mErrorLocation;
231  QgsVertexId mVidx;
232  QVariant mValue;
233  ValueType mValueType;
234  Status mStatus;
235  QString mResolutionMessage;
236 
237  private:
238 
239 #ifdef SIP_RUN
240  const QgsGeometryCheckError &operator=( const QgsGeometryCheckError & );
241 #endif
242 };
243 
245 
246 #endif // QGSGEOMETRYCHECKERROR_H
QgsGeometryCheckError::value
QVariant value() const
An additional value for the error.
Definition: qgsgeometrycheckerror.h:128
QgsGeometryCheckError::valueType
ValueType valueType() const
The type of the value.
Definition: qgsgeometrycheckerror.h:134
QgsGeometryCheckError::ValueArea
@ ValueArea
The value is an area.
Definition: qgsgeometrycheckerror.h:56
QgsGeometryCheckError::ValueLength
@ ValueLength
The value is a length.
Definition: qgsgeometrycheckerror.h:55
QgsGeometryCheckError::check
const QgsGeometryCheck * check() const
The geometry check that created this error.
Definition: qgsgeometrycheckerror.h:80
QgsGeometryCheckError::StatusFixed
@ StatusFixed
The error is fixed.
Definition: qgsgeometrycheckerror.h:46
QgsGeometryCheckError::ValueType
ValueType
Describes the type of an error value.
Definition: qgsgeometrycheckerror.h:53
QgsGeometryCheckError::setObsolete
void setObsolete()
Set the error status to obsolete.
Definition: qgsgeometrycheckerror.h:166
QgsGeometryCheckError::featureId
QgsFeatureId featureId() const
The id of the feature on which this error has been detected.
Definition: qgsgeometrycheckerror.h:90
QgsGeometryCheck::Changes
QMap< QString, QMap< QgsFeatureId, QList< QgsGeometryCheck::Change > > > Changes
A collection of changes.
Definition: qgsgeometrycheck.h:220
QgsGeometryCheckError::resolutionMessage
QString resolutionMessage() const
A message with details, how the error has been resolved.
Definition: qgsgeometrycheckerror.h:150
QgsGeometryCheckError::Status
Status
The status of an error.
Definition: qgsgeometrycheckerror.h:42
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:41
QgsGeometryCheck
This class implements a geometry check.
Definition: qgsgeometrycheck.h:91
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
qgsgeometrycheck.h
QgsGeometryCheckError::location
const QgsPointXY & location() const
The location of the error in map units.
Definition: qgsgeometrycheckerror.h:121
QgsGeometryCheckError::description
virtual QString description() const
The error description.
Definition: qgsgeometrycheckerror.h:116
QgsGeometryCheckerUtils::LayerFeature
A layer feature combination to uniquely identify and access a feature in a set of layers.
Definition: qgsgeometrycheckerutils.h:51
QgsGeometryCheckError::status
Status status() const
The status of the error.
Definition: qgsgeometrycheckerror.h:145
QgsGeometryCheckError::StatusFixFailed
@ StatusFixFailed
A fix has been tried on the error but failed.
Definition: qgsgeometrycheckerror.h:45
QgsGeometryCheckError::vidx
const QgsVertexId & vidx() const
The id of the affected vertex.
Definition: qgsgeometrycheckerror.h:140
QgsPointXY
A class to represent a 2D point.
Definition: qgspointxy.h:58
QgsGeometry
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:124
qgsgeometrycheckerutils.h
QgsVertexId
Utility class for identifying a unique vertex within a geometry.
Definition: qgsvertexid.h:30
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
QgsGeometryCheckError::StatusPending
@ StatusPending
The error is detected and pending to be handled.
Definition: qgsgeometrycheckerror.h:44
QgsGeometryCheckError::layerId
const QString & layerId() const
The id of the layer on which this error has been detected.
Definition: qgsgeometrycheckerror.h:85
QgsGeometryCheckError
This represents an error reported by a geometry check.
Definition: qgsgeometrycheckerror.h:35
QgsFeatureId
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition: qgsfeatureid.h:28