Miscellaneous fixes

This commit is contained in:
jrheinlaender 2013-05-24 15:15:08 +04:30 committed by Stefan Tröger
parent 04e5d83366
commit 401c4d6dc0
5 changed files with 21 additions and 17 deletions

Binary file not shown.

Binary file not shown.

View File

@ -65,7 +65,8 @@ static PyObject * setActivePart(PyObject *self, PyObject *args)
PartDesignGui::ActivePartObject = Item;
PartDesignGui::ActiveAppDoc = Item->getDocument();
PartDesignGui::ActiveGuiDoc = Gui::Application::Instance->getDocument(PartDesignGui::ActiveAppDoc);
PartDesignGui::ActiveVp = dynamic_cast<Gui::ViewProviderDocumentObject*> (PartDesignGui::ActiveGuiDoc->getViewProvider(Item)) ;
PartDesignGui::ActiveVp = dynamic_cast<Gui::ViewProviderDocumentObject*> (PartDesignGui::ActiveGuiDoc->getViewProvider(Item));
PartDesignGui::ActiveVp->show();
Item->IsActive.setValue(true);
} else {
// This handles the case of deactivating the workbench

View File

@ -176,20 +176,25 @@ void CmdPartDesignMoveTip::activated(int iMsg)
if(!pcActiveBody) return;
std::vector<App::DocumentObject*> features = getSelection().getObjectsOfType(Part::Feature::getClassTypeId());
if (features.empty()) return;
App::DocumentObject* selFeature = features.front();
App::DocumentObject* selFeature;
if (selFeature->getTypeId().isDerivedFrom(PartDesign::Body::getClassTypeId())) {
if (features.empty()) {
// Insert at the beginning of this body
selFeature = NULL;
} else if (!pcActiveBody->hasFeature(selFeature)) {
// Switch to other body
pcActiveBody = static_cast<PartDesign::Body*>(Part::BodyBase::findBodyOf(selFeature));
if (pcActiveBody != NULL)
Gui::Command::doCommand(Gui::Command::Gui,"PartDesignGui.setActivePart(App.activeDocument().%s)",
pcActiveBody->getNameInDocument());
else
return;
} else {
selFeature = features.front();
if (selFeature->getTypeId().isDerivedFrom(PartDesign::Body::getClassTypeId())) {
// Insert at the beginning of this body
selFeature = NULL;
} else if (!pcActiveBody->hasFeature(selFeature)) {
// Switch to other body
pcActiveBody = static_cast<PartDesign::Body*>(Part::BodyBase::findBodyOf(selFeature));
if (pcActiveBody != NULL)
Gui::Command::doCommand(Gui::Command::Gui,"PartDesignGui.setActivePart(App.activeDocument().%s)",
pcActiveBody->getNameInDocument());
else
return;
}
}
openCommand("Move insert point to selected feature");

View File

@ -174,12 +174,10 @@ void ViewProviderBody::updateData(const App::Property* prop)
// PartDesign workbench not active
return PartGui::ViewProviderPart::updateData(prop);
if (prop->getTypeId() == App::PropertyBool::getClassTypeId() && strcmp(prop->getName(),"IsActive") == 0) {
if ((prop->getTypeId() == App::PropertyBool::getClassTypeId() && strcmp(prop->getName(),"IsActive") == 0) ||
(prop->getTypeId() == App::PropertyLink::getClassTypeId() && strcmp(prop->getName(),"Tip") == 0) ||
(prop->getTypeId() == App::PropertyLinkList::getClassTypeId() && strcmp(prop->getName(),"Model") == 0))
updateTree();
} else if (prop->getTypeId() == App::PropertyLink::getClassTypeId() && strcmp(prop->getName(),"Tip") == 0) {
updateTree();
}
// Note: The Model property only changes by itself (without the Tip also changing) if a feature is deleted somewhere
// Update the visual size of datum lines and planes
PartDesign::Body* body = static_cast<PartDesign::Body*>(getObject());