Skip to content

Commit 13a74ae

Browse files
authoredMar 20, 2019
Merge pull request #9320 from m-kuhn/geometry-validation-icons
Geometry validation icons
2 parents 638650a + dbc8135 commit 13a74ae

15 files changed

+66
-11
lines changed
 

‎images/images.qrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@
7575
<file>north_arrows/gpsarrow2.svg</file>
7676
<file>splash/splash.png</file>
7777
<file>composer/missing_image.svg</file>
78+
<file>themes/default/checks/SliverOrGap.svg</file>
79+
<file>themes/default/checks/InvalidGeometry.svg</file>
80+
<file>themes/default/checks/MissingVertex.svg</file>
81+
<file>themes/default/checks/Overlap.svg</file>
7882
<file>themes/default/algorithms/mAlgorithmAddGeometryAttributes.svg</file>
7983
<file>themes/default/algorithms/mAlgorithmBasicStatistics.svg</file>
8084
<file>themes/default/algorithms/mAlgorithmBuffer.svg</file>
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

‎python/analysis/auto_generated/vector/geometry_checker/qgsgeometrycheckerror.sip.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,12 @@ Will be used to update existing errors whenever they are re-checked.
163163

164164

165165

166+
virtual QIcon icon() const;
167+
%Docstring
168+
Returns an icon that should be shown for this kind of error.
169+
170+
.. versionadded:: 3.8
171+
%End
166172
protected:
167173

168174
QgsGeometryCheckError( const QgsGeometryCheck *check,

‎src/analysis/vector/geometry_checker/qgsgeometrycheckerror.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
***************************************************************************/
1717

1818
#include "qgsgeometrycheckerror.h"
19+
#include "qgsapplication.h"
1920

2021
QgsGeometryCheckError::QgsGeometryCheckError( const QgsGeometryCheck *check,
2122
const QString &layerId,
@@ -186,6 +187,14 @@ QMap<QString, QgsFeatureIds> QgsGeometryCheckError::involvedFeatures() const
186187
return QMap<QString, QSet<QgsFeatureId> >();
187188
}
188189

190+
QIcon QgsGeometryCheckError::icon() const
191+
{
192+
if ( status() == QgsGeometryCheckError::StatusFixed )
193+
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmCheckGeometry.svg" ) );
194+
else
195+
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmLineIntersections.svg" ) );
196+
}
197+
189198
void QgsGeometryCheckError::update( const QgsGeometryCheckError *other )
190199
{
191200
Q_ASSERT( mCheck == other->mCheck );

‎src/analysis/vector/geometry_checker/qgsgeometrycheckerror.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,12 @@ class ANALYSIS_EXPORT QgsGeometryCheckError
188188
*/
189189
virtual QMap<QString, QgsFeatureIds > involvedFeatures() const SIP_SKIP;
190190

191+
/**
192+
* Returns an icon that should be shown for this kind of error.
193+
*
194+
* \since QGIS 3.8
195+
*/
196+
virtual QIcon icon() const;
191197
protected:
192198

193199
/**

‎src/analysis/vector/geometry_checker/qgsgeometrygapcheck.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "qgsfeaturepool.h"
2121
#include "qgsvectorlayer.h"
2222
#include "qgsfeedback.h"
23+
#include "qgsapplication.h"
2324

2425
#include "geos_c.h"
2526

@@ -328,3 +329,12 @@ QMap<QString, QgsFeatureIds> QgsGeometryGapCheckError::involvedFeatures() const
328329
{
329330
return mNeighbors;
330331
}
332+
333+
QIcon QgsGeometryGapCheckError::icon() const
334+
{
335+
336+
if ( status() == QgsGeometryCheckError::StatusFixed )
337+
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmCheckGeometry.svg" ) );
338+
else
339+
return QgsApplication::getThemeIcon( QStringLiteral( "/checks/SliverOrGap.svg" ) );
340+
}

‎src/analysis/vector/geometry_checker/qgsgeometrygapcheck.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ class ANALYSIS_EXPORT QgsGeometryGapCheckError : public QgsGeometryCheckError
6767

6868
QMap<QString, QgsFeatureIds > involvedFeatures() const override;
6969

70+
QIcon icon() const override;
71+
7072
private:
7173
QMap<QString, QgsFeatureIds> mNeighbors;
7274
QgsRectangle mGapAreaBBox;

‎src/analysis/vector/geometry_checker/qgsgeometrymissingvertexcheck.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "qgslinestring.h"
2424
#include "qgsgeometryengine.h"
2525
#include "qgsgeometryutils.h"
26+
#include "qgsapplication.h"
2627

2728
QgsGeometryMissingVertexCheck::QgsGeometryMissingVertexCheck( const QgsGeometryCheckContext *context, const QVariantMap &geometryCheckConfiguration )
2829
: QgsGeometryCheck( context, geometryCheckConfiguration )
@@ -289,3 +290,12 @@ void QgsGeometryMissingVertexCheckError::setInvolvedFeatures( const QMap<QString
289290
{
290291
mInvolvedFeatures = involvedFeatures;
291292
}
293+
294+
QIcon QgsGeometryMissingVertexCheckError::icon() const
295+
{
296+
297+
if ( status() == QgsGeometryCheckError::StatusFixed )
298+
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmCheckGeometry.svg" ) );
299+
else
300+
return QgsApplication::getThemeIcon( QStringLiteral( "/checks/MissingVertex.svg" ) );
301+
}

‎src/analysis/vector/geometry_checker/qgsgeometrymissingvertexcheck.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ class ANALYSIS_EXPORT QgsGeometryMissingVertexCheckError : public QgsGeometryChe
6666
*/
6767
void setInvolvedFeatures( const QMap<QString, QgsFeatureIds> &involvedFeatures );
6868

69+
QIcon icon() const override;
70+
6971
private:
7072
QgsRectangle mAffectedAreaBBox;
7173
QMap<QString, QgsFeatureIds> mInvolvedFeatures;

‎src/analysis/vector/geometry_checker/qgsgeometryoverlapcheck.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "qgsfeaturepool.h"
2020
#include "qgsvectorlayer.h"
2121
#include "qgsfeedback.h"
22+
#include "qgsapplication.h"
2223

2324
QgsGeometryOverlapCheck::QgsGeometryOverlapCheck( const QgsGeometryCheckContext *context, const QVariantMap &configuration )
2425
: QgsGeometryCheck( context, configuration )
@@ -312,3 +313,12 @@ QMap<QString, QgsFeatureIds> QgsGeometryOverlapCheckError::involvedFeatures() co
312313
features[mOverlappedFeature.layerId()].insert( mOverlappedFeature.featureId() );
313314
return features;
314315
}
316+
317+
QIcon QgsGeometryOverlapCheckError::icon() const
318+
{
319+
320+
if ( status() == QgsGeometryCheckError::StatusFixed )
321+
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmCheckGeometry.svg" ) );
322+
else
323+
return QgsApplication::getThemeIcon( QStringLiteral( "/checks/Overlap.svg" ) );
324+
}

‎src/analysis/vector/geometry_checker/qgsgeometryoverlapcheck.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class ANALYSIS_EXPORT QgsGeometryOverlapCheckError : public QgsGeometryCheckErro
7878
QString description() const override;
7979

8080
QMap<QString, QgsFeatureIds > involvedFeatures() const override;
81+
QIcon icon() const override;
8182

8283
private:
8384
OverlappedFeature mOverlappedFeature;

‎src/app/qgsgeometryvalidationmodel.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ QVariant QgsGeometryValidationModel::data( const QModelIndex &index, int role )
7272
switch ( role )
7373
{
7474
case Qt::DecorationRole:
75-
if ( topologyError->status() == QgsGeometryCheckError::StatusFixed )
76-
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmCheckGeometry.svg" ) );
77-
else
78-
return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmLineIntersections.svg" ) );
75+
return topologyError->icon();
7976

8077
case Qt::DisplayRole:
8178
case DetailsRole:
@@ -166,13 +163,7 @@ QVariant QgsGeometryValidationModel::data( const QModelIndex &index, int role )
166163

167164
case Qt::DecorationRole:
168165
{
169-
#if 0
170-
if ( mGeometryValidationService->validationActive( mCurrentLayer, featureItem.fid ) )
171-
return QgsApplication::getThemeIcon( "/mActionTracing.svg" );
172-
else
173-
return QVariant();
174-
#endif
175-
break;
166+
return QgsApplication::getThemeIcon( "/checks/InvalidGeometry.svg" );
176167
}
177168

178169
case GeometryCheckErrorRole:

0 commit comments

Comments
 (0)
Please sign in to comment.