Skip to content

Commit 0a2d3ba

Browse files
committed
[vertex tool] rename mSelectedFeature to mLockedFeature
1 parent a887b7d commit 0a2d3ba

File tree

2 files changed

+33
-34
lines changed

2 files changed

+33
-34
lines changed

src/app/vertextool/qgsvertextool.cpp

+32-33
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ void QgsVertexTool::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
484484
if ( mNewVertexFromDoubleClick )
485485
{
486486
QgsPointLocator::Match m( *mNewVertexFromDoubleClick );
487-
if ( mSelectedFeature && ( mSelectedFeature->featureId() != m.featureId() || mSelectedFeature->layer() != m.layer() ) )
487+
if ( mLockedFeature && ( mLockedFeature->featureId() != m.featureId() || mLockedFeature->layer() != m.layer() ) )
488488
return; // when a feature is bound to the vector editor, only process actions on that feature
489489

490490
mNewVertexFromDoubleClick.reset();
@@ -510,7 +510,6 @@ void QgsVertexTool::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
510510
QgsRectangle map_rect( pt0, pt1 );
511511
QList<Vertex> vertices;
512512
QList<Vertex> selectedVertices;
513-
QList<Vertex> editorVertices;
514513

515514
// the logic for selecting vertices using rectangle:
516515
// - if we have a bound (locked) feature, we only allow selection of its vertices
@@ -526,15 +525,15 @@ void QgsVertexTool::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
526525
if ( mMode == ActiveLayer && vlayer != currentVectorLayer() )
527526
continue;
528527

529-
if ( mSelectedFeature && mSelectedFeature->layer() != vlayer )
528+
if ( mLockedFeature && mLockedFeature->layer() != vlayer )
530529
continue; // with locked feature we only allow selection of its vertices
531530

532531
QgsRectangle layerRect = toLayerCoordinates( vlayer, map_rect );
533532
QgsFeature f;
534533
QgsFeatureIterator fi = vlayer->getFeatures( QgsFeatureRequest( layerRect ).setNoAttributes() );
535534
while ( fi.nextFeature( f ) )
536535
{
537-
if ( mSelectedFeature && mSelectedFeature->featureId() != f.id() )
536+
if ( mLockedFeature && mLockedFeature->featureId() != f.id() )
538537
continue; // with locked feature we only allow selection of its vertices
539538

540539
bool isFeatureSelected = vlayer->selectedFeatureIds().contains( f.id() );
@@ -554,7 +553,7 @@ void QgsVertexTool::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
554553
}
555554

556555
// here's where we give precedence to vertices of selected features in case there's no bound (locked) feature
557-
if ( !mSelectedFeature && !selectedVertices.isEmpty() )
556+
if ( !mLockedFeature && !selectedVertices.isEmpty() )
558557
{
559558
vertices = selectedVertices;
560559
}
@@ -987,7 +986,7 @@ void QgsVertexTool::tryToSelectFeature( QgsMapMouseEvent *e )
987986
{
988987
// there's really nothing under the cursor or while cycling through the list of available features
989988
// we got to the end of the list - let's deselect any feature we may have had selected
990-
mSelectedFeature.reset();
989+
mLockedFeature.reset();
991990
if ( mVertexEditor )
992991
{
993992
mVertexEditor->updateEditor( nullptr );
@@ -1064,7 +1063,7 @@ void QgsVertexTool::mouseMoveNotDragging( QgsMapMouseEvent *e )
10641063

10651064
// do not use snap from mouse event, use our own with any editable layer
10661065
QgsPointLocator::Match m = snapToEditableLayer( e );
1067-
bool targetIsAllowed = ( !mSelectedFeature || ( mSelectedFeature->featureId() == m.featureId() && mSelectedFeature->layer() == m.layer() ) );
1066+
bool targetIsAllowed = ( !mLockedFeature || ( mLockedFeature->featureId() == m.featureId() && mLockedFeature->layer() == m.layer() ) );
10681067

10691068
// possibility to move a vertex
10701069
if ( m.type() == QgsPointLocator::Vertex && targetIsAllowed )
@@ -1160,7 +1159,7 @@ void QgsVertexTool::mouseMoveNotDragging( QgsMapMouseEvent *e )
11601159

11611160
// when we are "locked" to a feature, we don't want to highlight any other features
11621161
// so the user does not get distracted
1163-
updateFeatureBand( mSelectedFeature ? QgsPointLocator::Match() : m );
1162+
updateFeatureBand( mLockedFeature ? QgsPointLocator::Match() : m );
11641163
}
11651164

11661165
void QgsVertexTool::updateVertexBand( const QgsPointLocator::Match &m )
@@ -1298,8 +1297,8 @@ void QgsVertexTool::onCachedGeometryChanged( QgsFeatureId fid, const QgsGeometry
12981297
// re-run validation for the feature
12991298
validateGeometry( layer, fid );
13001299

1301-
if ( mVertexEditor && mSelectedFeature && mSelectedFeature->featureId() == fid && mSelectedFeature->layer() == layer )
1302-
mVertexEditor->updateEditor( mSelectedFeature.get() );
1300+
if ( mVertexEditor && mLockedFeature && mLockedFeature->featureId() == fid && mLockedFeature->layer() == layer )
1301+
mVertexEditor->updateEditor( mLockedFeature.get() );
13031302
}
13041303

13051304
void QgsVertexTool::onCachedGeometryDeleted( QgsFeatureId fid )
@@ -1318,32 +1317,32 @@ void QgsVertexTool::updateVertexEditor( QgsVectorLayer *layer, QgsFeatureId fid
13181317
{
13191318
if ( layer )
13201319
{
1321-
if ( mSelectedFeature && mSelectedFeature->featureId() == fid && mSelectedFeature->layer() == layer )
1320+
if ( mLockedFeature && mLockedFeature->featureId() == fid && mLockedFeature->layer() == layer )
13221321
{
13231322
// if show feature is called on a feature that's already binded to the vertex editor, toggle it off
1324-
mSelectedFeature.reset();
1323+
mLockedFeature.reset();
13251324
if ( mVertexEditor )
13261325
{
13271326
mVertexEditor->updateEditor( nullptr );
13281327
}
13291328
return;
13301329
}
13311330

1332-
mSelectedFeature.reset( new QgsSelectedFeature( fid, layer, mCanvas ) );
1333-
connect( mSelectedFeature->layer(), &QgsVectorLayer::featureDeleted, this, &QgsVertexTool::cleanEditor );
1331+
mLockedFeature.reset( new QgsSelectedFeature( fid, layer, mCanvas ) );
1332+
connect( mLockedFeature->layer(), &QgsVectorLayer::featureDeleted, this, &QgsVertexTool::cleanEditor );
13341333
for ( int i = 0; i < mSelectedVertices.length(); ++i )
13351334
{
13361335
if ( mSelectedVertices.at( i ).layer == layer && mSelectedVertices.at( i ).fid == fid )
13371336
{
1338-
mSelectedFeature->selectVertex( mSelectedVertices.at( i ).vertexId );
1337+
mLockedFeature->selectVertex( mSelectedVertices.at( i ).vertexId );
13391338
}
13401339
}
13411340
}
13421341

13431342
// make sure the vertex editor is alive and visible
13441343
showVertexEditor(); //#spellok
13451344

1346-
mVertexEditor->updateEditor( mSelectedFeature.get() );
1345+
mVertexEditor->updateEditor( mLockedFeature.get() );
13471346
}
13481347

13491348
void QgsVertexTool::showVertexEditor() //#spellok
@@ -1369,7 +1368,7 @@ void QgsVertexTool::showVertexEditor() //#spellok
13691368

13701369
void QgsVertexTool::cleanupVertexEditor()
13711370
{
1372-
mSelectedFeature.reset();
1371+
mLockedFeature.reset();
13731372
mVertexEditor.reset();
13741373
}
13751374

@@ -1394,18 +1393,18 @@ static void _safeSelectVertex( QgsSelectedFeature &selectedFeature, int vertexNr
13941393

13951394
void QgsVertexTool::deleteVertexEditorSelection()
13961395
{
1397-
if ( !mSelectedFeature )
1396+
if ( !mLockedFeature )
13981397
return;
13991398

1400-
int firstSelectedIndex = _firstSelectedVertex( *mSelectedFeature );
1399+
int firstSelectedIndex = _firstSelectedVertex( *mLockedFeature );
14011400
if ( firstSelectedIndex == -1 )
14021401
return;
14031402

14041403
// make a list of selected vertices
14051404
QList<Vertex> vertices;
1406-
QList<QgsVertexEntry *> &selFeatureVertices = mSelectedFeature->vertexMap();
1407-
QgsVectorLayer *layer = mSelectedFeature->layer();
1408-
QgsFeatureId fid = mSelectedFeature->featureId();
1405+
QList<QgsVertexEntry *> &selFeatureVertices = mLockedFeature->vertexMap();
1406+
QgsVectorLayer *layer = mLockedFeature->layer();
1407+
QgsFeatureId fid = mLockedFeature->featureId();
14091408
QgsGeometry geometry = cachedGeometry( layer, fid );
14101409
for ( QgsVertexEntry *vertex : qgis::as_const( selFeatureVertices ) )
14111410
{
@@ -1421,18 +1420,18 @@ void QgsVertexTool::deleteVertexEditorSelection()
14211420
setHighlightedVertices( vertices );
14221421
deleteVertex();
14231422

1424-
if ( !mSelectedFeature->geometry()->isNull() )
1423+
if ( !mLockedFeature->geometry()->isNull() )
14251424
{
14261425
int nextVertexToSelect = firstSelectedIndex;
1427-
if ( mSelectedFeature->geometry()->type() == QgsWkbTypes::LineGeometry )
1426+
if ( mLockedFeature->geometry()->type() == QgsWkbTypes::LineGeometry )
14281427
{
14291428
// for lines we don't wrap around vertex selection when deleting vertices from end of line
1430-
nextVertexToSelect = std::min( nextVertexToSelect, mSelectedFeature->geometry()->constGet()->nCoordinates() - 1 );
1429+
nextVertexToSelect = std::min( nextVertexToSelect, mLockedFeature->geometry()->constGet()->nCoordinates() - 1 );
14311430
}
14321431

1433-
_safeSelectVertex( *mSelectedFeature, nextVertexToSelect );
1432+
_safeSelectVertex( *mLockedFeature, nextVertexToSelect );
14341433
}
1435-
mSelectedFeature->layer()->triggerRepaint();
1434+
mLockedFeature->layer()->triggerRepaint();
14361435
}
14371436

14381437

@@ -1448,7 +1447,7 @@ void QgsVertexTool::startDragging( QgsMapMouseEvent *e )
14481447
QgsPointLocator::Match m = snapToEditableLayer( e );
14491448
if ( !m.isValid() )
14501449
return;
1451-
if ( mSelectedFeature && ( mSelectedFeature->featureId() != m.featureId() || mSelectedFeature->layer() != m.layer() ) )
1450+
if ( mLockedFeature && ( mLockedFeature->featureId() != m.featureId() || mLockedFeature->layer() != m.layer() ) )
14521451
return; // when a feature is bound to the vertex editor, only process actions for that feature
14531452

14541453
// activate advanced digitizing dock
@@ -1965,7 +1964,7 @@ void QgsVertexTool::moveVertex( const QgsPointXY &mapPoint, const QgsPointLocato
19651964
}
19661965

19671966
if ( mVertexEditor )
1968-
mVertexEditor->updateEditor( mSelectedFeature.get() );
1967+
mVertexEditor->updateEditor( mLockedFeature.get() );
19691968

19701969
setHighlightedVertices( mSelectedVertices ); // update positions of existing highlighted vertices
19711970
setHighlightedVerticesVisible( true ); // time to show highlighted vertices again
@@ -2060,7 +2059,7 @@ void QgsVertexTool::applyEditsToLayers( QgsVertexTool::VertexEdits &edits )
20602059
layer->triggerRepaint();
20612060

20622061
if ( mVertexEditor )
2063-
mVertexEditor->updateEditor( mSelectedFeature.get() );
2062+
mVertexEditor->updateEditor( mLockedFeature.get() );
20642063
}
20652064
}
20662065

@@ -2220,8 +2219,8 @@ void QgsVertexTool::deleteVertex()
22202219
}
22212220
}
22222221

2223-
if ( mVertexEditor && mSelectedFeature )
2224-
mVertexEditor->updateEditor( mSelectedFeature.get() );
2222+
if ( mVertexEditor && mLockedFeature )
2223+
mVertexEditor->updateEditor( mLockedFeature.get() );
22252224
}
22262225

22272226
void QgsVertexTool::setHighlightedVertices( const QList<Vertex> &listVertices, HighlightMode mode )
@@ -2676,7 +2675,7 @@ void QgsVertexTool::stopRangeVertexSelection()
26762675

26772676
void QgsVertexTool::cleanEditor( QgsFeatureId id )
26782677
{
2679-
if ( mSelectedFeature && mSelectedFeature->featureId() == id )
2678+
if ( mLockedFeature && mLockedFeature->featureId() == id )
26802679
{
26812680
cleanupVertexEditor();
26822681
};

src/app/vertextool/qgsvertextool.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ class APP_EXPORT QgsVertexTool : public QgsMapToolAdvancedDigitizing
436436
// support for vertex editor
437437

438438
//! Selected feature for the vertex editor
439-
std::unique_ptr<QgsSelectedFeature> mSelectedFeature;
439+
std::unique_ptr<QgsSelectedFeature> mLockedFeature;
440440
//! Dock widget which allows editing vertices
441441
std::unique_ptr<QgsVertexEditor> mVertexEditor;
442442

0 commit comments

Comments
 (0)