Skip to content

Commit c0fdfcf

Browse files
committed
always delete regardless of mouse position; use default rubberband color
1 parent 609b692 commit c0fdfcf

File tree

2 files changed

+12
-28
lines changed

2 files changed

+12
-28
lines changed

src/app/qgsmaptooldeletepart.cpp

+3-11
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,14 @@ void QgsMapToolDeletePart::canvasPressEvent( QMouseEvent *e )
7373
mRubberBand = createRubberBand( vlayer->geometryType() );
7474

7575
mRubberBand->setToGeometry( geomPart, vlayer );
76-
mRubberBand->setColor( QColor( 255, 0, 0, 65 ) );
77-
mRubberBand->setWidth( 2 );
7876
mRubberBand->show();
7977
}
8078

8179
}
8280

8381
void QgsMapToolDeletePart::canvasReleaseEvent( QMouseEvent *e )
8482
{
83+
Q_UNUSED( e );
8584

8685
delete mRubberBand;
8786
mRubberBand = 0;
@@ -94,18 +93,11 @@ void QgsMapToolDeletePart::canvasReleaseEvent( QMouseEvent *e )
9493
if ( mPressedFid == -1 )
9594
return;
9695

97-
int fid;
98-
int partNum;
99-
partUnderPoint( e->pos(), fid, partNum );
100-
101-
if ( fid != mPressedFid || partNum != mPressedPartNum )
102-
return;
103-
10496
QgsFeature f;
105-
vlayer->getFeatures( QgsFeatureRequest().setFilterFid( fid ) ).nextFeature( f );
97+
vlayer->getFeatures( QgsFeatureRequest().setFilterFid( mPressedFid ) ).nextFeature( f );
10698
QgsGeometry* g = f.geometry();
10799

108-
if ( g->deletePart( partNum ) )
100+
if ( g->deletePart( mPressedPartNum ) )
109101
{
110102
vlayer->beginEditCommand( tr( "Part of multipart feature deleted" ) );
111103
vlayer->changeGeometry( f.id(), g );

src/app/qgsmaptooldeletering.cpp

+9-17
Original file line numberDiff line numberDiff line change
@@ -82,40 +82,32 @@ void QgsMapToolDeleteRing::canvasPressEvent( QMouseEvent *e )
8282
mRubberBand = createRubberBand( vlayer->geometryType() );
8383

8484
mRubberBand->setToGeometry( ringGeom, vlayer );
85-
mRubberBand->setColor( QColor( 255, 0, 0, 65 ) );
86-
mRubberBand->setWidth( 2 );
8785
mRubberBand->show();
8886
}
8987
}
9088

9189
void QgsMapToolDeleteRing::canvasReleaseEvent( QMouseEvent *e )
9290
{
91+
Q_UNUSED( e );
9392

9493
delete mRubberBand;
9594
mRubberBand = 0;
9695

9796
if ( mPressedFid == -1 )
9897
return;
9998

100-
QgsPoint p = toLayerCoordinates( vlayer, e->pos() );
101-
102-
int fid, partNum, ringNum;
10399
QgsFeature f;
104100
QgsGeometry* g;
105-
ringUnderPoint( p, fid, partNum, ringNum );
106101

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 );
110103

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();
119111
}
120112
}
121113

0 commit comments

Comments
 (0)