diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index c614457b60..74533f9efa 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -280,10 +280,15 @@ void TaskMirroredParameters::onFeatureDeleted(void) { PartDesign::Transformed* pcTransformed = getObject(); std::vector originals = pcTransformed->Originals.getValues(); - originals.erase(originals.begin() + ui->listWidgetFeatures->currentRow()); + int currentRow = ui->listWidgetFeatures->currentRow(); + if (currentRow < 0) { + Base::Console().Error("PartDesign MirroredPattern: No feature selected for removing.\n"); + return; //no current row selected + } + originals.erase(originals.begin() + currentRow); setupTransaction(); pcTransformed->Originals.setValues(originals); - ui->listWidgetFeatures->model()->removeRow(ui->listWidgetFeatures->currentRow()); + ui->listWidgetFeatures->model()->removeRow(currentRow); recomputeFeature(); } diff --git a/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp b/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp index d0f39c5d37..3bd6bb84c4 100644 --- a/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp @@ -219,9 +219,14 @@ void TaskScaledParameters::onFeatureDeleted(void) { PartDesign::Transformed* pcTransformed = getObject(); std::vector originals = pcTransformed->Originals.getValues(); - originals.erase(originals.begin() + ui->listWidgetFeatures->currentRow()); + int currentRow = ui->listWidgetFeatures->currentRow(); + if (currentRow < 0) { + Base::Console().Error("PartDesign ScaledPattern: No feature selected for removing.\n"); + return; //no current row selected + } + originals.erase(originals.begin() + currentRow); pcTransformed->Originals.setValues(originals); - ui->listWidgetFeatures->model()->removeRow(ui->listWidgetFeatures->currentRow()); + ui->listWidgetFeatures->model()->removeRow(currentRow); recomputeFeature(); }