From a109937d0371629e037ca59ce87b1dfa18f8dc68 Mon Sep 17 00:00:00 2001 From: Jan Caha Date: Fri, 21 Feb 2025 15:37:54 +0100 Subject: [PATCH] update widget to work with new checkbox --- .../qgsmeshtransformcoordinatesdockwidget.cpp | 25 ++++++++++++++++--- ...smeshtransformcoordinatesdockwidgetbase.ui | 19 ++++++-------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/app/mesh/qgsmeshtransformcoordinatesdockwidget.cpp b/src/app/mesh/qgsmeshtransformcoordinatesdockwidget.cpp index 3ab156dea168..10bebb84abfb 100644 --- a/src/app/mesh/qgsmeshtransformcoordinatesdockwidget.cpp +++ b/src/app/mesh/qgsmeshtransformcoordinatesdockwidget.cpp @@ -56,7 +56,16 @@ QgsMeshTransformCoordinatesDockWidget::QgsMeshTransformCoordinatesDockWidget( QW connect( mButtonPreview, &QToolButton::clicked, this, &QgsMeshTransformCoordinatesDockWidget::calculate ); connect( mButtonApply, &QPushButton::clicked, this, &QgsMeshTransformCoordinatesDockWidget::apply ); connect( mButtonImport, &QToolButton::toggled, this, &QgsMeshTransformCoordinatesDockWidget::onImportVertexClicked ); - connect( mGetZValuesButton, &QPushButton::clicked, this, &QgsMeshTransformCoordinatesDockWidget::updateZValuesFromTerrain ); + + connect( mCheckBoxZ, &QCheckBox::toggled, this, [=]( const bool checked ) { + if ( checked ) + mCheckBoxZFromProjectTerrain->setChecked( !checked ); + } ); + connect( mCheckBoxZFromProjectTerrain, &QCheckBox::toggled, this, [=]( const bool checked ) { + if ( checked ) + mCheckBoxZ->setChecked( !checked ); + } ); + connect( mCheckBoxZFromProjectTerrain, &QCheckBox::toggled, this, &QgsMeshTransformCoordinatesDockWidget::updateButton ); } QgsExpressionContext QgsMeshTransformCoordinatesDockWidget::createExpressionContext() const @@ -104,8 +113,6 @@ void QgsMeshTransformCoordinatesDockWidget::setInput( QgsMeshLayer *layer, const } } - mGetZValuesButton->setDisabled( vertexIndexes.empty() ); - importVertexCoordinates(); updateButton(); emit calculationUpdated(); @@ -120,6 +127,7 @@ void QgsMeshTransformCoordinatesDockWidget::calculate() mTransformVertices.clear(); mTransformVertices.setInputVertices( mInputVertices ); mTransformVertices.setExpressions( mCheckBoxX->isChecked() ? mExpressionEditX->expression() : QString(), mCheckBoxY->isChecked() ? mExpressionEditY->expression() : QString(), mCheckBoxZ->isChecked() ? mExpressionEditZ->expression() : QString() ); + mTransformVertices.setZFromTerrain( mCheckBoxZFromProjectTerrain->isChecked() ); QgsExpressionContext context; context.appendScope( QgsExpressionContextUtils::projectScope( QgsProject::instance() ) ); @@ -133,6 +141,7 @@ void QgsMeshTransformCoordinatesDockWidget::calculate() void QgsMeshTransformCoordinatesDockWidget::updateButton() { + bool modifyXYZSelected = false; mButtonApply->setEnabled( false ); bool isCalculable = mInputLayer && !mInputVertices.isEmpty(); if ( isCalculable ) @@ -141,6 +150,11 @@ void QgsMeshTransformCoordinatesDockWidget::updateButton() for ( const QCheckBox *cb : std::as_const( mCheckBoxes ) ) isCalculable |= cb->isChecked(); + if ( isCalculable ) + { + modifyXYZSelected = true; + } + if ( isCalculable ) { for ( int i = 0; i < mCheckBoxes.count(); ++i ) @@ -149,6 +163,11 @@ void QgsMeshTransformCoordinatesDockWidget::updateButton() isCalculable &= !checked || mExpressionLineEdits.at( i )->isValidExpression(); } } + + if ( !modifyXYZSelected && mCheckBoxZFromProjectTerrain->isChecked() ) + { + isCalculable = true; + } } mButtonPreview->setEnabled( isCalculable ); diff --git a/src/ui/mesh/qgsmeshtransformcoordinatesdockwidgetbase.ui b/src/ui/mesh/qgsmeshtransformcoordinatesdockwidgetbase.ui index 45e455ca2990..ed52de1af25b 100644 --- a/src/ui/mesh/qgsmeshtransformcoordinatesdockwidgetbase.ui +++ b/src/ui/mesh/qgsmeshtransformcoordinatesdockwidgetbase.ui @@ -38,7 +38,14 @@ - + + + + Get Z value from project terrain + + + + QLayout::SetDefaultConstraint @@ -150,16 +157,6 @@ - - - - false - - - Get Z value from project terrain - - -