[TD]fix fail when dropping onto corrupt object

This commit is contained in:
wandererfan
2023-12-28 09:40:41 -05:00
committed by WandererFan
parent 067e13b7b7
commit daeaa2b7e3

View File

@@ -58,9 +58,24 @@ void ViewProviderDrawingViewExtension::extensionDragObject(App::DocumentObject*
//extension to try to drop on us and cause problems
bool ViewProviderDrawingViewExtension::extensionCanDropObjects() const { return true; }
//let the page have any drops we receive
//let the page have any drops we receive.
bool ViewProviderDrawingViewExtension::extensionCanDropObject(App::DocumentObject* obj) const
{
// it can happen that if the tree gets badly corrupted, there can be loose
// objects that have no page or view provider, so we need to check that
// all these objects exist.
auto vpdv = getViewProviderDrawingView();
if (!vpdv) {
return false;
}
auto vpp = vpdv->getViewProviderPage();
if (!vpp) {
return false;
}
auto vppEx = vpp->getVPPExtension();
if (!vppEx) {
return false;
}
return getViewProviderDrawingView()
->getViewProviderPage()
->getVPPExtension()