void PropertyEditor::appendProperty(const App::Property& prop) { // check if the parent object is selected std::string editor = prop.getEditorName(); if (editor.empty()) return; App::PropertyContainer* parent = prop.getContainer(); std::string context = prop.getName(); bool canAddProperty = (!propList.empty()); for (PropertyModel::PropertyList::iterator it = propList.begin(); it != propList.end(); ++it) { if (it->second.empty() || it->second.size() > 1) { canAddProperty = false; break; } else if (it->second.front()->getContainer() != parent) { canAddProperty = false; break; } } if (canAddProperty) { std::vector<App::Property*> list; list.push_back(const_cast<App::Property*>(&prop)); std::pair< std::string, std::vector<App::Property*> > pair = std::make_pair(context, list); propList.push_back(pair); propertyModel->appendProperty(prop); } }
void PropertyView::slotChangePropertyEditor(const App::Property& prop) { App::PropertyContainer* parent = prop.getContainer(); if (parent && parent->isDerivedFrom(App::DocumentObject::getClassTypeId())) { propertyEditorData->updatetEditorMode(prop); } else if (parent && parent->isDerivedFrom(Gui::ViewProvider::getClassTypeId())) { propertyEditorView->updatetEditorMode(prop); } }
void PropertyView::slotRemoveDynamicProperty(const App::Property& prop) { App::PropertyContainer* parent = prop.getContainer(); if (parent && parent->isDerivedFrom(App::DocumentObject::getClassTypeId())) { propertyEditorData->removeProperty(prop); } else if (parent && parent->isDerivedFrom(Gui::ViewProvider::getClassTypeId())) { propertyEditorView->removeProperty(prop); } }
void PropertyView::slotAppendDynamicProperty(const App::Property& prop) { App::PropertyContainer* parent = prop.getContainer(); if (parent->isHidden(&prop) || prop.testStatus(App::Property::Hidden)) return; if (parent && parent->isDerivedFrom(App::DocumentObject::getClassTypeId())) { propertyEditorData->appendProperty(prop); } else if (parent && parent->isDerivedFrom(Gui::ViewProvider::getClassTypeId())) { propertyEditorView->appendProperty(prop); } }