Skip to content

Commit

Permalink
update widget to work with new checkbox
Browse files Browse the repository at this point in the history
  • Loading branch information
JanCaha committed Feb 21, 2025
1 parent 3b6d8ff commit a109937
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 14 deletions.
25 changes: 22 additions & 3 deletions src/app/mesh/qgsmeshtransformcoordinatesdockwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -104,8 +113,6 @@ void QgsMeshTransformCoordinatesDockWidget::setInput( QgsMeshLayer *layer, const
}
}

mGetZValuesButton->setDisabled( vertexIndexes.empty() );

importVertexCoordinates();
updateButton();
emit calculationUpdated();
Expand All @@ -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() ) );

Expand All @@ -133,6 +141,7 @@ void QgsMeshTransformCoordinatesDockWidget::calculate()

void QgsMeshTransformCoordinatesDockWidget::updateButton()
{
bool modifyXYZSelected = false;
mButtonApply->setEnabled( false );
bool isCalculable = mInputLayer && !mInputVertices.isEmpty();
if ( isCalculable )
Expand All @@ -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 )
Expand All @@ -149,6 +163,11 @@ void QgsMeshTransformCoordinatesDockWidget::updateButton()
isCalculable &= !checked || mExpressionLineEdits.at( i )->isValidExpression();
}
}

if ( !modifyXYZSelected && mCheckBoxZFromProjectTerrain->isChecked() )
{
isCalculable = true;
}
}

mButtonPreview->setEnabled( isCalculable );
Expand Down
19 changes: 8 additions & 11 deletions src/ui/mesh/qgsmeshtransformcoordinatesdockwidgetbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,14 @@
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<item row="4" column="0">
<widget class="QCheckBox" name="mCheckBoxZFromProjectTerrain">
<property name="text">
<string>Get Z value from project terrain</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
Expand Down Expand Up @@ -150,16 +157,6 @@
<item row="1" column="1">
<widget class="QgsExpressionLineEdit" name="mExpressionEditX" native="true"/>
</item>
<item row="5" column="0" colspan="2">
<widget class="QPushButton" name="mGetZValuesButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Get Z value from project terrain</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
Expand Down

0 comments on commit a109937

Please sign in to comment.