Skip to content

Commit 7fb8579

Browse files
committedNov 2, 2018
Fix crash when de/reactivating layer checks
When errors have been found and shown on the dock and deactivating layer checks that resulted in crashes. Also when deactivating and reactivating checks, that would result in crashes.
1 parent 5bc588e commit 7fb8579

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed
 

‎src/app/qgsgeometryvalidationservice.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,12 @@ void QgsGeometryValidationService::cleanupLayerChecks( QgsVectorLayer *layer )
180180
VectorLayerCheckInformation &checkInformation = mLayerChecks[layer];
181181

182182
cancelTopologyCheck( layer );
183+
clearTopologyChecks( layer );
183184

184185
qDeleteAll( checkInformation.singleFeatureChecks );
186+
checkInformation.singleFeatureChecks.clear();
185187
qDeleteAll( checkInformation.topologyChecks );
188+
checkInformation.topologyChecks.clear();
186189
checkInformation.context.reset();
187190
}
188191

@@ -320,6 +323,7 @@ void QgsGeometryValidationService::clearTopologyChecks( QgsVectorLayer *layer )
320323
{
321324
QList<std::shared_ptr<QgsGeometryCheckError>> &allErrors = mLayerChecks[layer].topologyCheckErrors;
322325
allErrors.clear();
326+
layer->setAllowCommit( mLayerChecks[layer].singleFeatureCheckErrors.empty() );
323327

324328
emit topologyChecksCleared( layer );
325329
}
@@ -368,6 +372,7 @@ void QgsGeometryValidationService::triggerTopologyChecks( QgsVectorLayer *layer
368372
{
369373
cancelTopologyCheck( layer );
370374
clearTopologyChecks( layer );
375+
layer->setAllowCommit( false );
371376

372377
QgsFeatureIds affectedFeatureIds;
373378
if ( layer->editBuffer() )

0 commit comments

Comments
 (0)
Please sign in to comment.