add missing text for mesh editing undo/redo

This commit is contained in:
Vincent Cloarec 2021-10-10 13:43:59 -04:00 committed by GitHub
parent 24a61fafb1
commit 56b9d808ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 86 additions and 13 deletions

View File

@ -139,6 +139,9 @@ a Delaunay triangulation on provided existing vertex.
Constructor
%End
virtual QString text() const;
};
/************************************************************************

View File

@ -56,6 +56,11 @@ Removes all data provided to the editing or created by the editing
%Docstring
Returns whether the advanced edit is finished,
if not, this edit has to be applied again with :py:func:`QgsMeshEditor.advancedEdit()` until is finished returns ``True``
%End
virtual QString text() const;
%Docstring
Returns a short text string describing what this advanced edit does. Default implementation return a void string.
%End
protected:
@ -86,6 +91,9 @@ Neighboring faces are triangulated to take account of the new vertex in the shar
Constructor
%End
virtual QString text() const;
};
@ -123,6 +131,9 @@ expressionZ: "if( $vertex_x <= 100 , $vertex_z + 80 , $vertex_z - 150)"
Constructor
%End
virtual QString text() const;
void setExpressions( const QString &expressionX, const QString &expressionY, const QString &expressionZ );
%Docstring
Sets the expressions for the coordinates transformation.

View File

@ -88,6 +88,8 @@ before applying the edition with :py:func:`QgsMeshEditor.advancedEdit()`
Constructor
%End
virtual QString text() const;
virtual bool isFinished() const;

View File

@ -337,6 +337,11 @@ int QgsMeshZValueDataset::valuesCount() const
QgsMeshEditingDelaunayTriangulation::QgsMeshEditingDelaunayTriangulation() = default;
QString QgsMeshEditingDelaunayTriangulation::text() const
{
return QObject::tr( "Delaunay triangulation" );
}
QgsTopologicalMesh::Changes QgsMeshEditingDelaunayTriangulation::apply( QgsMeshEditor *meshEditor )
{
//use only vertices that are on boundary or free, if boundary
@ -431,7 +436,7 @@ QgsTopologicalMesh::Changes QgsMeshEditingDelaunayTriangulation::apply( QgsMeshE
Q_ASSERT( meshEditor->topologicalMesh().checkConsistency() == QgsMeshEditingError() );
if ( !removedVerticesFromTriangulation.isEmpty() )
mMessage = QObject::tr( "%1 vertices have not been included in the triangulation" ).arg( removedVerticesFromTriangulation.count() );
mMessage = QObject::tr( "%n vertices have not been included in the triangulation", nullptr, removedVerticesFromTriangulation.count() );
mIsFinished = true;

View File

@ -181,6 +181,8 @@ class ANALYSIS_EXPORT QgsMeshEditingDelaunayTriangulation : public QgsMeshAdvanc
//! Constructor
QgsMeshEditingDelaunayTriangulation();
QString text() const override;
private:
QgsTopologicalMesh::Changes apply( QgsMeshEditor *meshEditor ) override;
};

View File

@ -15701,7 +15701,6 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer *layer )
mActionSelectByForm->setEnabled( false );
mActionOpenFieldCalc->setEnabled( false );
mActionSaveLayerEdits->setEnabled( false );
mUndoDock->widget()->setEnabled( false );
mActionSaveLayerDefinition->setEnabled( true );
mActionLayerSaveAs->setEnabled( false );
mActionAddFeature->setEnabled( false );
@ -15740,6 +15739,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer *layer )
mActionToggleEditing->setChecked( canSupportEditing && isEditable );
mActionSaveLayerEdits->setEnabled( canSupportEditing && isEditable && mlayer->isModified() );
enableMeshEditingTools( isEditable );
mUndoDock->widget()->setEnabled( canSupportEditing && isEditable );
mActionUndo->setEnabled( canSupportEditing && isEditable );
mActionRedo->setEnabled( canSupportEditing && isEditable );
updateUndoActions();

View File

@ -57,6 +57,11 @@ bool QgsMeshAdvancedEditing::isFinished() const
return mIsFinished;
}
QString QgsMeshAdvancedEditing::text() const
{
return QString();
}
static int vertexPositionInFace( int vertexIndex, const QgsMeshFace &face )
{
return face.indexOf( vertexIndex );
@ -604,6 +609,11 @@ bool QgsMeshEditRefineFaces::createNewBorderFaces( QgsMeshEditor *meshEditor,
return true;
}
QString QgsMeshEditRefineFaces::text() const
{
return QObject::tr( "Refine %n faces", nullptr, mInputFaces.count() );
}
bool QgsMeshTransformVerticesByExpression::calculate( QgsMeshLayer *layer )
{
if ( !layer || !layer->meshEditor() || !layer->nativeMesh() )
@ -742,6 +752,11 @@ bool QgsMeshTransformVerticesByExpression::calculate( QgsMeshLayer *layer )
return layer->meshEditor()->canBeTransformed( mNativeFacesIndexesGeometryChanged, transformFunction );
}
QString QgsMeshTransformVerticesByExpression::text() const
{
return QObject::tr( "Transform %n vertices by expression", nullptr, mInputVertices.count() );
}
void QgsMeshTransformVerticesByExpression::setExpressions( const QString &expressionX, const QString &expressionY, const QString &expressionZ )
{
mExpressionX = expressionX;

View File

@ -62,6 +62,9 @@ class CORE_EXPORT QgsMeshAdvancedEditing : protected QgsTopologicalMesh::Changes
*/
virtual bool isFinished() const;
//! Returns a short text string describing what this advanced edit does. Default implementation return a void string.
virtual QString text() const;
protected:
QList<int> mInputVertices;
QList<int> mInputFaces;
@ -97,6 +100,8 @@ class CORE_EXPORT QgsMeshEditRefineFaces : public QgsMeshAdvancedEditing
//! Constructor
QgsMeshEditRefineFaces();
QString text() const override;
private:
QgsTopologicalMesh::Changes apply( QgsMeshEditor *meshEditor ) override;
@ -161,6 +166,8 @@ class CORE_EXPORT QgsMeshTransformVerticesByExpression : public QgsMeshAdvancedE
//! Constructor
QgsMeshTransformVerticesByExpression() = default;
QString text() const override;
/**
* Sets the expressions for the coordinates transformation.
*

View File

@ -776,7 +776,9 @@ QgsMeshLayerUndoCommandAddVertices::QgsMeshLayerUndoCommandAddVertices( QgsMeshE
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVertices( vertices )
, mTolerance( tolerance )
{}
{
setText( QObject::tr( "Add %n vertices", nullptr, mVertices.count() ) );
}
void QgsMeshLayerUndoCommandAddVertices::redo()
{
@ -804,7 +806,9 @@ QgsMeshLayerUndoCommandRemoveVertices::QgsMeshLayerUndoCommandRemoveVertices( Qg
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVerticesToRemoveIndexes( verticesToRemoveIndexes )
, mFillHole( fillHole )
{}
{
setText( QObject::tr( "Remove %n vertices", nullptr, verticesToRemoveIndexes.count() ) ) ;
}
void QgsMeshLayerUndoCommandRemoveVertices::redo()
{
@ -837,7 +841,9 @@ void QgsMeshLayerUndoCommandRemoveVertices::redo()
QgsMeshLayerUndoCommandAddFaces::QgsMeshLayerUndoCommandAddFaces( QgsMeshEditor *meshEditor, QgsTopologicalMesh::TopologicalFaces &faces )
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mFaces( faces )
{}
{
setText( QObject::tr( "Add %n faces", nullptr, faces.meshFaces().count() ) );
}
void QgsMeshLayerUndoCommandAddFaces::redo()
{
@ -859,7 +865,9 @@ void QgsMeshLayerUndoCommandAddFaces::redo()
QgsMeshLayerUndoCommandRemoveFaces::QgsMeshLayerUndoCommandRemoveFaces( QgsMeshEditor *meshEditor, const QList<int> &facesToRemoveIndexes )
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mfacesToRemoveIndexes( facesToRemoveIndexes )
{}
{
setText( QObject::tr( "Remove %n faces", nullptr, facesToRemoveIndexes.count() ) );
}
void QgsMeshLayerUndoCommandRemoveFaces::redo()
{
@ -953,7 +961,9 @@ QgsMeshLayerUndoCommandChangeZValue::QgsMeshLayerUndoCommandChangeZValue( QgsMes
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVerticesIndexes( verticesIndexes )
, mNewValues( newValues )
{}
{
setText( QObject::tr( "Change %n vertices Z Value", nullptr, verticesIndexes.count() ) );
}
void QgsMeshLayerUndoCommandChangeZValue::redo()
{
@ -976,7 +986,9 @@ QgsMeshLayerUndoCommandChangeXYValue::QgsMeshLayerUndoCommandChangeXYValue( QgsM
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVerticesIndexes( verticesIndexes )
, mNewValues( newValues )
{}
{
setText( QObject::tr( "Move %n vertices", nullptr, verticesIndexes.count() ) );
}
void QgsMeshLayerUndoCommandChangeXYValue::redo()
{
@ -1000,7 +1012,9 @@ QgsMeshLayerUndoCommandChangeCoordinates::QgsMeshLayerUndoCommandChangeCoordinat
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVerticesIndexes( verticesIndexes )
, mNewCoordinates( newCoordinates )
{}
{
setText( QObject::tr( "Transform %n vertices coordinates", nullptr, verticesIndexes.count() ) );
}
void QgsMeshLayerUndoCommandChangeCoordinates::redo()
{
@ -1039,7 +1053,9 @@ QgsMeshLayerUndoCommandFlipEdge::QgsMeshLayerUndoCommandFlipEdge( QgsMeshEditor
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVertexIndex1( vertexIndex1 )
, mVertexIndex2( vertexIndex2 )
{}
{
setText( QObject::tr( "Flip edge" ) );
}
void QgsMeshLayerUndoCommandFlipEdge::redo()
{
@ -1062,7 +1078,9 @@ QgsMeshLayerUndoCommandMerge::QgsMeshLayerUndoCommandMerge( QgsMeshEditor *meshE
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mVertexIndex1( vertexIndex1 )
, mVertexIndex2( vertexIndex2 )
{}
{
setText( QObject::tr( "Merge faces" ) );
}
void QgsMeshLayerUndoCommandMerge::redo()
{
@ -1084,7 +1102,9 @@ void QgsMeshLayerUndoCommandMerge::redo()
QgsMeshLayerUndoCommandSplitFaces::QgsMeshLayerUndoCommandSplitFaces( QgsMeshEditor *meshEditor, const QList<int> &faceIndexes )
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mFaceIndexes( faceIndexes )
{}
{
setText( QObject::tr( "Split %n faces", nullptr, faceIndexes.count() ) );
}
void QgsMeshLayerUndoCommandSplitFaces::redo()
{
@ -1108,7 +1128,9 @@ void QgsMeshLayerUndoCommandSplitFaces::redo()
QgsMeshLayerUndoCommandAdvancedEditing::QgsMeshLayerUndoCommandAdvancedEditing( QgsMeshEditor *meshEditor, QgsMeshAdvancedEditing *advancdEdit )
: QgsMeshLayerUndoCommandMeshEdit( meshEditor )
, mAdvancedEditing( advancdEdit )
{}
{
setText( advancdEdit->text() );
}
void QgsMeshLayerUndoCommandAdvancedEditing::redo()
{

View File

@ -1095,6 +1095,11 @@ bool QgsMeshEditForceByLine::finishForcingLine()
}
QString QgsMeshEditForceByPolylines::text() const
{
return QObject::tr( "Force mesh by polyline" );
}
bool QgsMeshEditForceByPolylines::isFinished() const
{
return mCurrentPolyline >= mPolylines.count() && QgsMeshEditForceByLine::isFinished();

View File

@ -148,6 +148,7 @@ class CORE_EXPORT QgsMeshEditForceByPolylines : public QgsMeshEditForceByLine
//! Constructor
QgsMeshEditForceByPolylines() = default;
QString text() const override;
bool isFinished() const override;
/**