Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Save layer changes on successful repair
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 6, 2018
1 parent d9d4bd2 commit 10eb547
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 10eb547

Please sign in to comment.