From 9a4f0f5d606915a4375b985f1afaee4a8a403f89 Mon Sep 17 00:00:00 2001 From: Vincent Cloarec Date: Tue, 17 Aug 2021 02:54:24 -0400 Subject: [PATCH] fix (partially) #44226 (#44723) --- src/app/mesh/qgsnewmeshlayerdialog.cpp | 18 +++- src/ui/mesh/qgsnewmeshlayerdialogbase.ui | 104 +++++++++++------------ 2 files changed, 65 insertions(+), 57 deletions(-) diff --git a/src/app/mesh/qgsnewmeshlayerdialog.cpp b/src/app/mesh/qgsnewmeshlayerdialog.cpp index 7e79a0d1d2a..a223f17968e 100644 --- a/src/app/mesh/qgsnewmeshlayerdialog.cpp +++ b/src/app/mesh/qgsnewmeshlayerdialog.cpp @@ -63,7 +63,7 @@ QgsNewMeshLayerDialog::QgsNewMeshLayerDialog( QWidget *parent, Qt::WindowFlags f connect( mFormatComboBox, static_cast( &QComboBox::currentIndexChanged ), this, &QgsNewMeshLayerDialog::onFormatChanged ); connect( mFileWidget, &QgsFileWidget::fileChanged, this, &QgsNewMeshLayerDialog::onFilePathChanged ); - connect( mEmptyMeshRadioButton, &QRadioButton::toggled, this, &QgsNewMeshLayerDialog::updateDialog ); + connect( mInitializeMeshGroupBox, &QGroupBox::toggled, this, &QgsNewMeshLayerDialog::updateDialog ); connect( mMeshFileRadioButton, &QRadioButton::toggled, this, &QgsNewMeshLayerDialog::updateDialog ); connect( mMeshFromFileWidget, &QgsFileWidget::fileChanged, this, &QgsNewMeshLayerDialog::updateDialog ); connect( mMeshProjectComboBox, &QgsMapLayerComboBox::layerChanged, this, &QgsNewMeshLayerDialog::updateDialog ); @@ -107,7 +107,7 @@ void QgsNewMeshLayerDialog::updateSourceMeshframe() { mMeshProjectComboBox->setEnabled( false ); mMeshFromFileWidget->setEnabled( false ); - if ( mEmptyMeshRadioButton->isChecked() ) + if ( !mInitializeMeshGroupBox->isChecked() ) { mSourceMeshFromFile.reset(); mSourceMeshFrameReady = true; @@ -222,7 +222,7 @@ bool QgsNewMeshLayerDialog::apply() QgsMeshLayer *source = nullptr; - if ( mEmptyMeshRadioButton->isChecked() ) + if ( !mInitializeMeshGroupBox->isChecked() ) { crs = mProjectionSelectionWidget->crs(); } @@ -247,7 +247,17 @@ bool QgsNewMeshLayerDialog::apply() result = providerMetadata->createMeshData( mesh, fileName, format, crs ); if ( result ) { - std::unique_ptr newMeshLayer = std::make_unique( fileName, mLayerNameLineEdit->text(), QStringLiteral( "mdal" ) ); + QString layerName = mLayerNameLineEdit->text(); + if ( layerName.isEmpty() ) + { + layerName = fileName; + QFileInfo fileInfo( fileName ); + layerName = fileInfo.baseName(); + } + std::unique_ptr newMeshLayer = std::make_unique( fileName, layerName, QStringLiteral( "mdal" ) ); + + if ( newMeshLayer->crs() != crs ) + newMeshLayer->setCrs( crs ); if ( newMeshLayer->isValid() ) QgsProject::instance()->addMapLayer( newMeshLayer.release(), true, true ); diff --git a/src/ui/mesh/qgsnewmeshlayerdialogbase.ui b/src/ui/mesh/qgsnewmeshlayerdialogbase.ui index e70aa207e90..a3d46eb74d3 100644 --- a/src/ui/mesh/qgsnewmeshlayerdialogbase.ui +++ b/src/ui/mesh/qgsnewmeshlayerdialogbase.ui @@ -14,45 +14,42 @@ New Mesh Layer - + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok + + + + Layer name - - - - New mesh layer - - - - - - - File name - - - - - - - + File format - - - - - - - - + + 0 @@ -62,6 +59,12 @@ Initialize Mesh Using + + true + + + false + 0 @@ -75,52 +78,48 @@ 0 - + + + + + + + + + + Mesh from file - + Mesh from the current project - - - - - - Empty mesh - true - - - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok + + + + + + + File name + + + @@ -145,7 +144,6 @@ mLayerNameLineEdit mFormatComboBox - mEmptyMeshRadioButton mMeshProjectRadioButton mMeshProjectComboBox mMeshFileRadioButton