Gui: improve deletion handling in origin feature
This commit is contained in:
@@ -134,12 +134,14 @@ void ViewProviderOriginGroupExtension::slotChangedObjectGui ( const Gui::ViewPro
|
||||
}
|
||||
|
||||
void ViewProviderOriginGroupExtension::updateOriginSize () {
|
||||
auto owner = getExtendedViewProvider()->getObject();
|
||||
|
||||
if(getExtendedViewProvider()->getObject()->isRemoving() ||
|
||||
getExtendedViewProvider()->getObject()->getDocument()->testStatus(App::Document::Restoring))
|
||||
if(!owner->getNameInDocument() ||
|
||||
owner->isRemoving() ||
|
||||
owner->getDocument()->testStatus(App::Document::Restoring))
|
||||
return;
|
||||
|
||||
auto* group = getExtendedViewProvider()->getObject()->getExtensionByType<App::OriginGroupExtension>();
|
||||
auto* group = owner->getExtensionByType<App::OriginGroupExtension>();
|
||||
if(!group)
|
||||
return;
|
||||
|
||||
@@ -152,18 +154,16 @@ void ViewProviderOriginGroupExtension::updateOriginSize () {
|
||||
|
||||
Gui::ViewProvider *vp = Gui::Application::Instance->getViewProvider(origin);
|
||||
if (!vp) {
|
||||
throw Base::RuntimeError ("No view provider linked to the Origin");
|
||||
Base::Console().Error ("No view provider linked to the Origin\n");
|
||||
return;
|
||||
}
|
||||
assert ( vp->isDerivedFrom ( Gui::ViewProviderOrigin::getClassTypeId () ) );
|
||||
vpOrigin = static_cast <Gui::ViewProviderOrigin *> ( vp );
|
||||
} catch (const Base::Exception &ex) {
|
||||
// if is restoring it is normal that the origin property is null until after restored, so no need to report this.
|
||||
if(!getExtendedViewProvider()->getDocument()->getDocument()->testStatus(App::Document::Restoring))
|
||||
Base::Console().Error ("%s\n", ex.what() );
|
||||
Base::Console().Error ("%s\n", ex.what() );
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Gui::Document* gdoc = getExtendedViewProvider()->getDocument();
|
||||
if(!gdoc)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user