@@ -202,19 +202,20 @@ void QgsRubberBand::setToGeometry( QgsGeometry* geom, QgsVectorLayer* layer )
202202 for ( int i = 0 ; i < mpt.size (); ++i )
203203 {
204204 QgsPoint pt = mpt[i];
205+ mPoints .push_back ( QList<QgsPoint>() );
205206 if ( layer )
206207 {
207- addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () - d, pt.y () - d ) ), false );
208- addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () + d, pt.y () - d ) ), false );
209- addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () + d, pt.y () + d ) ), false );
210- addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () - d, pt.y () + d ) ), false );
208+ addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () - d, pt.y () - d ) ), false , i );
209+ addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () + d, pt.y () - d ) ), false , i );
210+ addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () + d, pt.y () + d ) ), false , i );
211+ addPoint ( mr->layerToMapCoordinates ( layer, QgsPoint ( pt.x () - d, pt.y () + d ) ), false , i );
211212 }
212213 else
213214 {
214- addPoint ( QgsPoint ( pt.x () - d, pt.y () - d ), false );
215- addPoint ( QgsPoint ( pt.x () + d, pt.y () - d ), false );
216- addPoint ( QgsPoint ( pt.x () + d, pt.y () + d ), false );
217- addPoint ( QgsPoint ( pt.x () - d, pt.y () + d ), false );
215+ addPoint ( QgsPoint ( pt.x () - d, pt.y () - d ), false , i );
216+ addPoint ( QgsPoint ( pt.x () + d, pt.y () - d ), false , i );
217+ addPoint ( QgsPoint ( pt.x () + d, pt.y () + d ), false , i );
218+ addPoint ( QgsPoint ( pt.x () - d, pt.y () + d ), false , i );
218219 }
219220 }
220221 }
@@ -248,8 +249,7 @@ void QgsRubberBand::setToGeometry( QgsGeometry* geom, QgsVectorLayer* layer )
248249 QgsMultiPolyline mline = geom->asMultiPolyline ();
249250 for ( int i = 0 ; i < mline.size (); ++i )
250251 {
251- QList<QgsPoint> newList;
252- mPoints .push_back ( newList );
252+ mPoints .push_back ( QList<QgsPoint>() );
253253 QgsPolyline line = mline[i];
254254 for ( int j = 0 ; j < line.size (); ++j )
255255 {
@@ -295,8 +295,7 @@ void QgsRubberBand::setToGeometry( QgsGeometry* geom, QgsVectorLayer* layer )
295295 QgsMultiPolygon multipoly = geom->asMultiPolygon ();
296296 for ( int i = 0 ; i < multipoly.size (); ++i )
297297 {
298- QList<QgsPoint> newList;
299- mPoints .push_back ( newList );
298+ mPoints .push_back ( QList<QgsPoint>() );
300299 QgsPolygon poly = multipoly[i];
301300 QgsPolyline line = poly[0 ];
302301 for ( int j = 0 ; j < line.count (); ++j )
0 commit comments