Skip to content

Commit 4aaa523

Browse files
committed
fix #21931 Mesh calculator crash when used with face dataset
1 parent cc37e70 commit 4aaa523

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/analysis/mesh/qgsmeshcalcutils.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@ std::shared_ptr<QgsMeshMemoryDatasetGroup> QgsMeshCalcUtils::create( const QStri
6161
for ( int value_i = 0; value_i < count; ++value_i )
6262
ds->values[value_i] = block.value( value_i );
6363

64-
const QgsMeshDataBlock active = dp->areFacesActive( index, 0, dp->faceCount() );
65-
Q_ASSERT( active.count() == dp->faceCount() );
66-
for ( int value_i = 0; value_i < dp->faceCount(); ++value_i )
67-
ds->active[value_i] = active.active( value_i );
68-
64+
if ( grp->type == QgsMeshDatasetGroupMetadata::DataOnVertices )
65+
{
66+
const QgsMeshDataBlock active = dp->areFacesActive( index, 0, dp->faceCount() );
67+
Q_ASSERT( active.count() == dp->faceCount() );
68+
for ( int value_i = 0; value_i < dp->faceCount(); ++value_i )
69+
ds->active[value_i] = active.active( value_i );
70+
}
6971
grp->addDataset( ds );
7072
}
7173

src/app/mesh/qgsmeshcalculatordialog.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ void QgsMeshCalculatorDialog::mExpressionTextEdit_textChanged()
247247
}
248248
else
249249
{
250-
mExpressionValidLabel->setText( tr( "Expression invalid" ) );
250+
mExpressionValidLabel->setText( tr( "Expression invalid or datasets type not supported" ) );
251251
}
252252
mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( false );
253253
}

0 commit comments

Comments
 (0)