Skip to content

Commit

Permalink
fix: reduce the number of changeGeometry() call
Browse files Browse the repository at this point in the history
  • Loading branch information
Koyaani authored and github-actions[bot] committed Nov 30, 2022
1 parent 1f4e5f9 commit f84b95f
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/app/vertextool/qgsvertextool.cpp
Expand Up @@ -2377,8 +2377,6 @@ void QgsVertexTool::applyEditsToLayers( QgsVertexTool::VertexEdits &edits )
editor->updateEditor( mLockedFeature.get() );
}



for ( it = edits.begin() ; it != edits.end(); ++it )
{
QgsVectorLayer *layer = it.key();
Expand All @@ -2399,7 +2397,6 @@ void QgsVertexTool::applyEditsToLayers( QgsVertexTool::VertexEdits &edits )
break;
}
QgsGeometry featGeom = it2.value();
layer->changeGeometry( it2.key(), featGeom );
if ( avoidIntersectionsLayers.size() > 0 )
{
QHash<QgsVectorLayer *, QSet<QgsFeatureId> > ignoreFeatures;
Expand All @@ -2416,12 +2413,19 @@ void QgsVertexTool::applyEditsToLayers( QgsVertexTool::VertexEdits &edits )
case 3:
emit messageEmitted( tr( "At least one geometry intersected is invalid. These geometries must be manually repaired." ), Qgis::MessageLevel::Warning );
break;

default:
break;
}
// if the geometry has been changed
if ( avoidIntersectionsReturn != 4 )
{
layer->changeGeometry( it2.key(), featGeom );
edits[layer][it2.key()] = featGeom;
}

}
layer->changeGeometry( it2.key(), featGeom );
edits[layer][it2.key()] = featGeom;

}
layer->endEditCommand();
layer->triggerRepaint();
Expand Down

0 comments on commit f84b95f

Please sign in to comment.