@@ -14,6 +14,7 @@ QgsGeometryValidationModel::QgsGeometryValidationModel( QgsGeometryValidationSer
14
14
connect ( mGeometryValidationService , &QgsGeometryValidationService::geometryCheckStarted, this , &QgsGeometryValidationModel::onGeometryCheckStarted );
15
15
connect ( mGeometryValidationService , &QgsGeometryValidationService::topologyChecksUpdated, this , &QgsGeometryValidationModel::onTopologyChecksUpdated );
16
16
connect ( mGeometryValidationService , &QgsGeometryValidationService::topologyChecksCleared, this , &QgsGeometryValidationModel::onTopologyChecksCleared );
17
+ connect ( mGeometryValidationService , &QgsGeometryValidationService::topologyErrorUpdated, this , &QgsGeometryValidationModel::onTopologyErrorUpdated );
17
18
}
18
19
19
20
QModelIndex QgsGeometryValidationModel::index ( int row, int column, const QModelIndex &parent ) const
@@ -76,7 +77,6 @@ QVariant QgsGeometryValidationModel::data( const QModelIndex &index, int role )
76
77
{
77
78
return tr ( " %1: %2" ).arg ( featureTitle.toString (), topologyError->description () );
78
79
}
79
-
80
80
}
81
81
82
82
case FeatureExtentRole:
@@ -328,6 +328,23 @@ void QgsGeometryValidationModel::onTopologyChecksCleared( QgsVectorLayer *layer
328
328
}
329
329
}
330
330
331
+ void QgsGeometryValidationModel::onTopologyErrorUpdated ( QgsVectorLayer *layer, QgsGeometryCheckError *error )
332
+ {
333
+ if ( layer == mCurrentLayer )
334
+ {
335
+ int i = 0 ;
336
+ for ( const auto ¤tError : qgis::as_const ( mTopologyErrorStorage [layer] ) )
337
+ {
338
+ if ( currentError.get () == error )
339
+ {
340
+ QModelIndex idx = index ( i, 0 , QModelIndex () );
341
+ emit dataChanged ( idx, idx );
342
+ }
343
+ ++i;
344
+ }
345
+ }
346
+ }
347
+
331
348
int QgsGeometryValidationModel::errorsForFeature ( QgsVectorLayer *layer, QgsFeatureId fid )
332
349
{
333
350
const auto &layerErrors = mErrorStorage [layer];
0 commit comments