@@ -82,40 +82,32 @@ void QgsMapToolDeleteRing::canvasPressEvent( QMouseEvent *e )
82
82
mRubberBand = createRubberBand ( vlayer->geometryType () );
83
83
84
84
mRubberBand ->setToGeometry ( ringGeom, vlayer );
85
- mRubberBand ->setColor ( QColor ( 255 , 0 , 0 , 65 ) );
86
- mRubberBand ->setWidth ( 2 );
87
85
mRubberBand ->show ();
88
86
}
89
87
}
90
88
91
89
void QgsMapToolDeleteRing::canvasReleaseEvent ( QMouseEvent *e )
92
90
{
91
+ Q_UNUSED ( e );
93
92
94
93
delete mRubberBand ;
95
94
mRubberBand = 0 ;
96
95
97
96
if ( mPressedFid == -1 )
98
97
return ;
99
98
100
- QgsPoint p = toLayerCoordinates ( vlayer, e->pos () );
101
-
102
- int fid, partNum, ringNum;
103
99
QgsFeature f;
104
100
QgsGeometry* g;
105
- ringUnderPoint ( p, fid, partNum, ringNum );
106
101
107
- if ( fid == mPressedFid && partNum == mPressedPartNum && ringNum == mPressedRingNum )
108
- {
109
- vlayer->getFeatures ( QgsFeatureRequest ().setFilterFid ( mPressedFid ) ).nextFeature ( f );
102
+ vlayer->getFeatures ( QgsFeatureRequest ().setFilterFid ( mPressedFid ) ).nextFeature ( f );
110
103
111
- g = f.geometry ();
112
- if ( g->deleteRing ( ringNum, partNum ) )
113
- {
114
- vlayer->beginEditCommand ( tr ( " Ring deleted" ) );
115
- vlayer->changeGeometry ( fid, g );
116
- vlayer->endEditCommand ();
117
- mCanvas ->refresh ();
118
- }
104
+ g = f.geometry ();
105
+ if ( g->deleteRing ( mPressedRingNum , mPressedPartNum ) )
106
+ {
107
+ vlayer->beginEditCommand ( tr ( " Ring deleted" ) );
108
+ vlayer->changeGeometry ( mPressedFid , g );
109
+ vlayer->endEditCommand ();
110
+ mCanvas ->refresh ();
119
111
}
120
112
}
121
113
0 commit comments