Skip to content

Commit 1deaafc

Browse files
committedNov 8, 2015
nodetool: initialize select rubberband and fix indentation (fixes crash on quit; see also PR#2433)
1 parent 9d97c7c commit 1deaafc

File tree

1 file changed

+33
-27
lines changed

1 file changed

+33
-27
lines changed
 

‎src/app/nodetool/qgsmaptoolnodetool.cpp

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
QgsMapToolNodeTool::QgsMapToolNodeTool( QgsMapCanvas* canvas )
3535
: QgsMapToolEdit( canvas )
36+
, mSelectRubberBand( 0 )
3637
, mSelectedFeature( 0 )
3738
, mNodeEditor( 0 )
3839
, mMoving( true )
@@ -173,9 +174,9 @@ QgsFeature QgsMapToolNodeTool::getFeatureAtPoint( QgsMapMouseEvent* e )
173174
{
174175
QgsFeature feature;
175176
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer *>( mCanvas->currentLayer() );
176-
if ( vlayer == NULL ) {
177-
return feature;
178-
}
177+
178+
if ( !vlayer )
179+
return feature;
179180

180181
QgsFeatureRequest request;
181182
request.setFilterRect( QgsRectangle( e->mapPoint().x(), e->mapPoint().y(), e->mapPoint().x(), e->mapPoint().y() ) );
@@ -204,18 +205,21 @@ void QgsMapToolNodeTool::canvasPressEvent( QgsMapMouseEvent* e )
204205
if ( snapResults.size() < 1 )
205206
{
206207
QgsFeature feature = getFeatureAtPoint( e );
207-
if ( feature.geometry() == NULL ) {
208-
emit messageEmitted(tr( "could not snap to a segment on the current layer." ) );
209-
return;
208+
if ( !feature.geometry() )
209+
{
210+
emit messageEmitted( tr( "could not snap to a segment on the current layer." ) );
211+
return;
210212
}
211-
else {
212-
// remove previous warning
213-
emit messageDiscarded();
214-
mSelectedFeature = new QgsSelectedFeature( feature.id(), vlayer, mCanvas );
215-
updateSelectFeature();
213+
else
214+
{
215+
// remove previous warning
216+
emit messageDiscarded();
217+
mSelectedFeature = new QgsSelectedFeature( feature.id(), vlayer, mCanvas );
218+
updateSelectFeature();
216219
}
217220
}
218-
else {
221+
else
222+
{
219223
// remove previous warning
220224
emit messageDiscarded();
221225

@@ -339,24 +343,21 @@ void QgsMapToolNodeTool::canvasPressEvent( QgsMapMouseEvent* e )
339343
{
340344
mSelectedFeature->deselectAllVertexes();
341345

342-
QgsFeature feature = getFeatureAtPoint( e );
343-
if ( feature.geometry() == NULL ) {
344-
return;
345-
}
346-
else {
347-
mAnother = feature.id();
348-
mSelectAnother = true;
349-
}
346+
QgsFeature feature = getFeatureAtPoint( e );
347+
if ( !feature.geometry() )
348+
return;
349+
350+
mAnother = feature.id();
351+
mSelectAnother = true;
350352
}
351353
}
352354
}
353355
}
354356

355357
void QgsMapToolNodeTool::updateSelectFeature()
356358
{
357-
if (mSelectRubberBand != NULL) {
358-
delete mSelectRubberBand;
359-
}
359+
delete mSelectRubberBand;
360+
360361
mSelectRubberBand = new QgsGeometryRubberBand( mCanvas, mSelectedFeature->geometry()->type() );
361362
mSelectRubberBand->setBrushStyle( Qt::SolidPattern );
362363
mSelectRubberBand->setFillColor( QColor( 255, 0, 0, 50 ) );
@@ -512,10 +513,12 @@ void QgsMapToolNodeTool::cleanTool( bool deleteSelectedFeature )
512513
{
513514
removeRubberBands();
514515

515-
if ( mSelectRubberBand != NULL ) {
516+
if ( mSelectRubberBand )
517+
{
516518
delete mSelectRubberBand;
517-
mSelectRubberBand = NULL;
519+
mSelectRubberBand = 0;
518520
}
521+
519522
if ( mSelectedFeature )
520523
{
521524
QgsVectorLayer *vlayer = mSelectedFeature->vlayer();
@@ -525,9 +528,12 @@ void QgsMapToolNodeTool::cleanTool( bool deleteSelectedFeature )
525528
disconnect( mSelectedFeature, SIGNAL( destroyed() ), this, SLOT( selectedFeatureDestroyed() ) );
526529
disconnect( vlayer, SIGNAL( editingStopped() ), this, SLOT( editingToggled() ) );
527530

528-
if ( deleteSelectedFeature ) delete mSelectedFeature;
529-
mSelectedFeature = NULL;
531+
if ( deleteSelectedFeature )
532+
delete mSelectedFeature;
533+
534+
mSelectedFeature = 0;
530535
}
536+
531537
if ( mNodeEditor )
532538
{
533539
delete mNodeEditor;

0 commit comments

Comments
 (0)
Please sign in to comment.