Skip to content

Commit fa45125

Browse files
author
mhugent
committed
Fix for bug #1570, move vertex after add vertex introduces new vertices when snapping is active
git-svn-id: http://svn.osgeo.org/qgis/trunk@10517 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 5526c6a commit fa45125

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/app/qgsmaptooladdvertex.cpp

+19-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,25 @@ void QgsMapToolAddVertex::canvasReleaseEvent( QMouseEvent * e )
9696
int topologicalEditing = QgsProject::instance()->readNumEntry( "Digitizing", "/TopologicalEditing", 0 );
9797
if ( topologicalEditing )
9898
{
99-
insertSegmentVerticesForSnap( snapResults, vlayer );
99+
//ignore the snapping results that are on features / segments already considered in mRecentSnappingResults
100+
QList<QgsSnappingResult> filteredSnapResults = snapResults;
101+
QList<QgsSnappingResult>::iterator recentIt = mRecentSnappingResults.begin();
102+
for(; recentIt != mRecentSnappingResults.end(); ++recentIt)
103+
{
104+
QList<QgsSnappingResult>::iterator filterIt = filteredSnapResults.begin();
105+
for(; filterIt != filteredSnapResults.end(); ++filterIt)
106+
{
107+
if(filterIt->snappedAtGeometry == recentIt->snappedAtGeometry \
108+
&& filterIt->snappedVertexNr == recentIt->snappedVertexNr \
109+
&& filterIt->beforeVertexNr == recentIt->beforeVertexNr )
110+
{
111+
filteredSnapResults.erase(filterIt);
112+
continue;
113+
}
114+
115+
}
116+
}
117+
insertSegmentVerticesForSnap( filteredSnapResults, vlayer );
100118
}
101119

102120
snappedPointMapCoord = snapPointFromResults( snapResults, e->pos() );

0 commit comments

Comments
 (0)