Fix deleting a Part
This commit is contained in:
@@ -2173,6 +2173,10 @@ int Document::recompute()
|
||||
delete LogEntry;
|
||||
_RecomputeLog.clear();
|
||||
|
||||
//do we have anything to do?
|
||||
if(d->objectMap.empty())
|
||||
return 0;
|
||||
|
||||
// get the sorted vector of all objects in the document and go though it from the end
|
||||
vector<DocumentObject*> topoSortedObjects = topologicalSort();
|
||||
|
||||
|
||||
@@ -195,7 +195,7 @@ std::vector< DocumentObject* > OriginGroupExtension::addObjects(std::vector<Docu
|
||||
|
||||
bool OriginGroupExtension::hasObject(const DocumentObject* obj, bool recursive) const {
|
||||
|
||||
if(obj == getOrigin() || getOrigin()->hasObject(obj))
|
||||
if(Origin.getValue() && (obj == getOrigin() || getOrigin()->hasObject(obj)))
|
||||
return true;
|
||||
|
||||
return App::GroupExtension::hasObject(obj, recursive);
|
||||
|
||||
@@ -121,8 +121,7 @@ void ViewProviderOriginGroupExtension::slotChangedObjectApp ( const App::Documen
|
||||
}
|
||||
|
||||
void ViewProviderOriginGroupExtension::slotChangedObjectGui ( const Gui::ViewProviderDocumentObject& vp) {
|
||||
if ( !vp.hasExtension ( Gui::ViewProviderOrigin::getClassTypeId () ) &&
|
||||
!vp.isDerivedFrom ( Gui::ViewProviderOriginFeature::getClassTypeId () ) ) {
|
||||
if ( !vp.isDerivedFrom ( Gui::ViewProviderOriginFeature::getClassTypeId () )) {
|
||||
// Ignore origins to avoid infinite recursion (not likely in a well-formed focument,
|
||||
// but may happen in documents designed in old versions of assembly branch )
|
||||
auto* group = getExtendedViewProvider()->getObject()->getExtensionByType<App::OriginGroupExtension>();
|
||||
@@ -135,6 +134,10 @@ void ViewProviderOriginGroupExtension::slotChangedObjectGui ( const Gui::ViewPro
|
||||
}
|
||||
|
||||
void ViewProviderOriginGroupExtension::updateOriginSize () {
|
||||
|
||||
if(getExtendedViewProvider()->getObject()->isDeleting())
|
||||
return;
|
||||
|
||||
auto* group = getExtendedViewProvider()->getObject()->getExtensionByType<App::OriginGroupExtension>();
|
||||
if(!group)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user