@@ -1438,6 +1438,7 @@ void QgsMapToolEditMeshFrame::setCurrentLayer( QgsMapLayer *layer )
1438
1438
{
1439
1439
disconnect ( mCurrentLayer , &QgsMeshLayer::editingStarted, this , &QgsMapToolEditMeshFrame::onEditingStarted );
1440
1440
disconnect ( mCurrentLayer , &QgsMeshLayer::editingStopped, this , &QgsMapToolEditMeshFrame::onEditingStopped );
1441
+ disconnect ( mCurrentLayer ->undoStack (), &QUndoStack::indexChanged, this , &QgsMapToolEditMeshFrame::onUndoRedo );
1441
1442
}
1442
1443
1443
1444
mCurrentLayer = meshLayer;
@@ -1454,6 +1455,7 @@ void QgsMapToolEditMeshFrame::setCurrentLayer( QgsMapLayer *layer )
1454
1455
{
1455
1456
connect ( mCurrentLayer , &QgsMeshLayer::editingStarted, this , &QgsMapToolEditMeshFrame::onEditingStarted );
1456
1457
connect ( mCurrentLayer , &QgsMeshLayer::editingStopped, this , &QgsMapToolEditMeshFrame::onEditingStopped );
1458
+ connect ( mCurrentLayer ->undoStack (), &QUndoStack::indexChanged, this , &QgsMapToolEditMeshFrame::onUndoRedo );
1457
1459
1458
1460
if ( mCurrentLayer ->isEditable () )
1459
1461
{
@@ -1926,6 +1928,33 @@ void QgsMapToolEditMeshFrame::reindexMesh()
1926
1928
mCurrentLayer ->reindex ( transform, true );
1927
1929
}
1928
1930
1931
+ void QgsMapToolEditMeshFrame::onUndoRedo ()
1932
+ {
1933
+ switch ( mCurrentState )
1934
+ {
1935
+ case Digitizing:
1936
+ break ;
1937
+ case AddingNewFace:
1938
+ mNewFaceBand ->reset ( Qgis::GeometryType::Polygon );
1939
+ mNewFaceCandidate .clear ();
1940
+ mNewVerticesForNewFaceCandidate .clear ();
1941
+ mCurrentState = Digitizing;
1942
+ break ;
1943
+ case MovingSelection:
1944
+ mCurrentState = Digitizing;
1945
+ mMovingEdgesRubberband ->reset ( Qgis::GeometryType::Line );
1946
+ mMovingFacesRubberband ->reset ( Qgis::GeometryType::Polygon );
1947
+ mMovingFreeVertexRubberband ->reset ( Qgis::GeometryType::Point );
1948
+ mCadDockWidget ->setEnabledZ ( mCadDockWidget ->cadEnabled () );
1949
+ break ;
1950
+ case ForceByLines:
1951
+ break ;
1952
+ case Selecting:
1953
+ case SelectingByPolygon:
1954
+ break ;
1955
+ }
1956
+ }
1957
+
1929
1958
void QgsMapToolEditMeshFrame::selectByGeometry ( const QgsGeometry &geometry, Qt::KeyboardModifiers modifiers )
1930
1959
{
1931
1960
if ( mCurrentLayer .isNull () || !mCurrentLayer ->triangularMesh () || mCurrentEditor .isNull () )
0 commit comments