Skip to content

Commit

Permalink
Merge pull request #45068 from vcloarec/fix#44815
Browse files Browse the repository at this point in the history
[MESH] fix #44815
  • Loading branch information
PeterPetrik committed Sep 16, 2021
2 parents 21433a6 + 16ffb6e commit 2b9bc26
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 13 deletions.
24 changes: 21 additions & 3 deletions src/gui/mesh/qgsrenderermeshpropertieswidget.cpp
Expand Up @@ -36,7 +36,7 @@ QgsRendererMeshPropertiesWidget::QgsRendererMeshPropertiesWidget( QgsMeshLayer *
connect( mMeshLayer,
&QgsMeshLayer::dataChanged,
this,
&QgsRendererMeshPropertiesWidget::syncToLayer );
&QgsRendererMeshPropertiesWidget::syncToLayerPrivate );

mMeshRendererActiveDatasetWidget->setLayer( mMeshLayer );
mMeshRendererScalarSettingsWidget->setLayer( mMeshLayer );
Expand All @@ -45,7 +45,7 @@ QgsRendererMeshPropertiesWidget::QgsRendererMeshPropertiesWidget( QgsMeshLayer *
mEdgeMeshSettingsWidget->setLayer( mMeshLayer, QgsMeshRendererMeshSettingsWidget::MeshType::Edge );
mMeshRendererVectorSettingsWidget->setLayer( mMeshLayer );
m3dAveragingSettingsWidget->setLayer( mMeshLayer );
syncToLayer();
syncToLayer( mMeshLayer );

//blend mode
mBlendModeComboBox->setBlendMode( mMeshLayer->blendMode() );
Expand Down Expand Up @@ -133,7 +133,25 @@ void QgsRendererMeshPropertiesWidget::apply()
windowsSettings.setValue( QStringLiteral( "/Windows/RendererMeshProperties/tab" ), mStyleOptionsTab->currentIndex() );
}

void QgsRendererMeshPropertiesWidget::syncToLayer()
void QgsRendererMeshPropertiesWidget::syncToLayer( QgsMapLayer *mapLayer )
{
QgsMeshLayer *ml = qobject_cast<QgsMeshLayer *>( mapLayer );
if ( ml )
{
mLayer = ml;
mMeshRendererActiveDatasetWidget->setLayer( ml );
mNativeMeshSettingsWidget->setLayer( ml, QgsMeshRendererMeshSettingsWidget::Native );
mTriangularMeshSettingsWidget->setLayer( ml, QgsMeshRendererMeshSettingsWidget::Triangular );
mEdgeMeshSettingsWidget->setLayer( ml, QgsMeshRendererMeshSettingsWidget::Edge );
m3dAveragingSettingsWidget->setLayer( ml );
}
else
return;

syncToLayerPrivate();
}

void QgsRendererMeshPropertiesWidget::syncToLayerPrivate()
{
mMeshRendererActiveDatasetWidget->syncToLayer();
mNativeMeshSettingsWidget->syncToLayer();
Expand Down
19 changes: 9 additions & 10 deletions src/gui/mesh/qgsrenderermeshpropertieswidget.h
Expand Up @@ -47,24 +47,23 @@ class GUI_EXPORT QgsRendererMeshPropertiesWidget : public QgsMapLayerConfigWidge
*/
QgsRendererMeshPropertiesWidget( QgsMeshLayer *layer, QgsMapCanvas *canvas, QWidget *parent = nullptr );

/**
* Synchronize widgets state with associated map layer
*
* \since QGIS 3.22, replace syncToLayer() without argument
*/
void syncToLayer( QgsMapLayer *mapLayer ) override;

public slots:
//! Applies the settings made in the dialog
void apply() override;

#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Woverloaded-virtual"
#endif
//! Synchronize widgets state with associated mesh layer
void syncToLayer();
#ifdef __clang__
#pragma clang diagnostic pop
#endif

private slots:
void onActiveScalarGroupChanged( int groupIndex );
void onActiveVectorGroupChanged( int groupIndex );

void syncToLayerPrivate();

private:
QgsMeshLayer *mMeshLayer = nullptr; //not owned
};
Expand Down

0 comments on commit 2b9bc26

Please sign in to comment.