Navigation Menu

Skip to content

Commit

Permalink
Save layer changes on successful repair
Browse files Browse the repository at this point in the history
when there are topology errors which are fixed subsequently, make sure that the layer can be saved again
  • Loading branch information
m-kuhn committed Dec 4, 2018
1 parent cafa652 commit 9e0b9e7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/app/qgsgeometryvalidationservice.cpp
Expand Up @@ -145,7 +145,7 @@ void QgsGeometryValidationService::onFeatureDeleted( QgsVectorLayer *layer, QgsF

void QgsGeometryValidationService::onBeforeCommitChanges( QgsVectorLayer *layer )
{
if ( !mLayerChecks[layer].topologyChecks.empty() ) // TODO && topologyChecks not fulfilled
if ( !mBypassChecks && !mLayerChecks[layer].topologyChecks.empty() )
{
if ( !layer->allowCommit() )
{
Expand Down Expand Up @@ -461,7 +461,9 @@ void QgsGeometryValidationService::triggerTopologyChecks( QgsVectorLayer *layer
}
if ( allErrors.empty() && mLayerChecks[layer].singleFeatureCheckErrors.empty() && mLayerChecks[layer].commitPending )
{
mBypassChecks = true;
layer->commitChanges();
mBypassChecks = false;
mMessageBar->popWidget( mMessageBarItem );
mMessageBarItem = nullptr;
}
Expand Down
4 changes: 4 additions & 0 deletions src/app/qgsgeometryvalidationservice.h
Expand Up @@ -122,6 +122,10 @@ class QgsGeometryValidationService : public QObject
QgsMessageBar *mMessageBar = nullptr;
QgsMessageBarItem *mMessageBarItem = nullptr;

// when checks do complete successfully and changes need to be saved
// this variable is used to indicate that it's safe to bypass the checks
bool mBypassChecks = false;

};

#endif // QGSGEOMETRYVALIDATIONSERVICE_H

0 comments on commit 9e0b9e7

Please sign in to comment.