[PartDesign] Prevent crash when pressing delete key without feature selected to remove in linear and polar pattern dialog

This commit is contained in:
marioalexis
2020-10-03 00:57:57 -03:00
committed by abdullahtahiriyo
parent 432ac985e7
commit 5dfc061d49
2 changed files with 14 additions and 2 deletions

View File

@@ -366,9 +366,15 @@ void TaskLinearPatternParameters::onFeatureDeleted(void)
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> originals = pcTransformed->Originals.getValues();
originals.erase(originals.begin() + ui->listWidgetFeatures->currentRow());
int currentRow = ui->listWidgetFeatures->currentRow();
if (currentRow < 0) {
Base::Console().Error("PartDesign LinearPattern: 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();
}

View File

@@ -357,9 +357,15 @@ void TaskPolarPatternParameters::onFeatureDeleted(void)
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> originals = pcTransformed->Originals.getValues();
originals.erase(originals.begin() + ui->listWidgetFeatures->currentRow());
int currentRow = ui->listWidgetFeatures->currentRow();
if (currentRow < 0) {
Base::Console().Error("PartDesign PolarPattern: 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();
}