interactively show origin objects for feature pick

This commit is contained in:
Stefan Tröger
2015-05-06 17:33:44 +02:00
parent fbe4460e2f
commit 9e82e2f2e9
4 changed files with 84 additions and 3 deletions

View File

@@ -84,6 +84,48 @@ QIcon ViewProviderOrigin::getIcon(void) const
return Gui::ViewProvider::getIcon();
}
void ViewProviderOrigin::setTemporaryVisibilityMode(bool onoff, Gui::Document* doc)
{
tempVisDoc = doc;
if(tempVisMode == onoff)
return;
tempVisMode = onoff;
if(onoff && doc) {
App::Origin* origin = static_cast<App::Origin*>(pcObject);
tempVisMap.clear();
for(App::DocumentObject* obj : origin->getObjects()) {
Gui::ViewProvider* vp = doc->getViewProvider(obj);
if(vp) {
tempVisMap[vp] = vp->isVisible();
vp->setVisible(false);
}
}
tempVisMap[this] = isVisible();
setVisible(true);
}
else if(!onoff) {
for(std::pair<Gui::ViewProvider*, bool> pair : tempVisMap)
pair.first->setVisible(pair.second);
}
}
void ViewProviderOrigin::setTemporaryVisibility(App::DocumentObject* obj, bool onoff)
{
Gui::ViewProvider* vp = tempVisDoc->getViewProvider(obj);
if(vp) {
vp->setVisible(onoff);
}
}
bool ViewProviderOrigin::isTemporaryVisibilityMode()
{
return tempVisMode;
}
// Python feature -----------------------------------------------------------------------