Skip to content

Commit 4d566a3

Browse files
authoredApr 4, 2019
Merge pull request #9695 from 3nids/vertextool_sync_fix
[vertex tool] fixes some editor-tool synchronization issues
2 parents 7de6eeb + 5667b74 commit 4d566a3

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed
 

‎src/app/vertextool/qgslockedfeature.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,6 @@ QgsLockedFeature::QgsLockedFeature( QgsFeatureId featureId,
4242
// signal changing of current layer
4343
connect( QgisApp::instance()->layerTreeView(), &QgsLayerTreeView::currentLayerChanged, this, &QgsLockedFeature::currentLayerChanged );
4444

45-
// feature was deleted
46-
connect( mLayer, &QgsVectorLayer::featureDeleted, this, &QgsLockedFeature::featureDeleted );
47-
48-
// rolling back
49-
connect( mLayer, &QgsVectorLayer::beforeRollBack, this, &QgsLockedFeature::beforeRollBack );
50-
51-
// geometry was changed
52-
connect( mLayer, &QgsVectorLayer::geometryChanged, this, &QgsLockedFeature::geometryChanged );
53-
5445
replaceVertexMap();
5546
}
5647

‎src/app/vertextool/qgsvertextool.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,8 +1304,13 @@ void QgsVertexTool::onCachedGeometryChanged( QgsFeatureId fid, const QgsGeometry
13041304
// re-run validation for the feature
13051305
validateGeometry( layer, fid );
13061306

1307-
if ( mVertexEditor && mLockedFeature && mLockedFeature->featureId() == fid && mLockedFeature->layer() == layer )
1308-
mVertexEditor->updateEditor( mLockedFeature.get() );
1307+
if ( mLockedFeature && mLockedFeature->featureId() == fid && mLockedFeature->layer() == layer )
1308+
{
1309+
mLockedFeature->geometryChanged( fid, geom );
1310+
if ( mVertexEditor )
1311+
mVertexEditor->updateEditor( mLockedFeature.get() );
1312+
updateLockedFeatureVertices();
1313+
}
13091314
}
13101315

13111316
void QgsVertexTool::onCachedGeometryDeleted( QgsFeatureId fid )
@@ -1318,6 +1323,12 @@ void QgsVertexTool::onCachedGeometryDeleted( QgsFeatureId fid )
13181323

13191324
// refresh highlighted vertices - some may have been deleted
13201325
setHighlightedVertices( mSelectedVertices );
1326+
1327+
if ( mLockedFeature && mLockedFeature->featureId() == fid && mLockedFeature->layer() == layer )
1328+
{
1329+
mLockedFeature->featureDeleted( fid );
1330+
updateLockedFeatureVertices();
1331+
}
13211332
}
13221333

13231334
void QgsVertexTool::updateVertexEditor( QgsVectorLayer *layer, QgsFeatureId fid )
@@ -1401,6 +1412,7 @@ void QgsVertexTool::cleanupVertexEditor()
14011412
{
14021413
mLockedFeature.reset();
14031414
mVertexEditor.reset();
1415+
updateLockedFeatureVertices();
14041416
}
14051417

14061418
void QgsVertexTool::cleanupLockedFeature()
@@ -2022,6 +2034,7 @@ void QgsVertexTool::moveVertex( const QgsPointXY &mapPoint, const QgsPointLocato
20222034
}
20232035
}
20242036

2037+
updateLockedFeatureVertices();
20252038
if ( mVertexEditor )
20262039
mVertexEditor->updateEditor( mLockedFeature.get() );
20272040

0 commit comments

Comments
 (0)
Please sign in to comment.