Measure: Fix crash when removing referenced element
Also improve error messages Fixes #16183
This commit is contained in:
@@ -119,16 +119,16 @@ void MeasureRadius::parseSelection(const App::MeasureSelection& selection)
|
||||
|
||||
App::DocumentObjectExecReturn* MeasureRadius::execute()
|
||||
{
|
||||
recalculateRadius();
|
||||
auto info = getMeasureInfoFirst();
|
||||
if (!info || !info->valid) {
|
||||
return new App::DocumentObjectExecReturn("Cannot calculate radius");
|
||||
}
|
||||
|
||||
Radius.setValue(info->radius);
|
||||
return DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
|
||||
void MeasureRadius::recalculateRadius()
|
||||
{
|
||||
Radius.setValue(getMeasureInfoFirst()->radius);
|
||||
}
|
||||
|
||||
void MeasureRadius::onChanged(const App::Property* prop)
|
||||
{
|
||||
if (isRestoring() || isRemoving()) {
|
||||
@@ -136,7 +136,8 @@ void MeasureRadius::onChanged(const App::Property* prop)
|
||||
}
|
||||
|
||||
if (prop == &Element) {
|
||||
recalculateRadius();
|
||||
auto ret = recompute();
|
||||
delete ret;
|
||||
}
|
||||
|
||||
MeasureBase::onChanged(prop);
|
||||
|
||||
Reference in New Issue
Block a user